比较快的是,a&(a-1)
class Solution {
public:
vector<int> countBits(int num) {
vector<int> ans;
ans.push_back(0);
for(int i=1;i<=num;i++){
int a = i;
int sum = 1;
int b = a&(a-1);
while( b != 0){
//printf("<%d %d>\n",a,a-1);
sum ++;
a = b;
b = a&(a-1);
}
ans.push_back(sum);
}
return ans;
}
};