当前位置 博文首页 > 小狐狸FM的博客:C++ LeeCode 比特位计数
原题链接
十进制转二进制-百度百科
class Solution {
public:
vector<int> countBits(int n) {
vector<int> num;
for(int i=0;i<=n;i++){//遍历[0,n],计算每个值对应二进制1的个数
num.push_back(countOne(i));
}
return num;
}
public:
int countOne(int x){//计算当前十进制数转换为二进制后1的个数
if (x==0) return 0;
else if (x==1) return 1;
else if(x/2>0&&x/2<1){//如果当前为最后的商时
return 1;
}else{
return countOne(x/2) + x%2;
}
}
};
cs