输出小于num的数的二进制中1的个数
class Solution {
public:
vector<int> countBits(int num) {
vector<int>d(num+1,0);
d[0]=0;
d[1]=1;
//如果i是奇数,i由i/2的数左移一位+1得到
//如果i是偶数,i由i/2的数左移一位得到
for(int i=2;i<=num;i++){
d[i]=d[i>>1]+i%2;
}
return d;
}
};