对于二进制数x,2x相当右移补0,2x相当于右移补1 class Solution { public: vector<int> countBits(int num) { vector<int> vec(num+1); //创建vector数组时,初始值默认=0 int i; for(int i=0;i<=num/2;i++) { vec[i*2]=vec[i]; if(i*2+1<=num) vec[2*i+1]=vec[i]+1; } return vec; } };