如果是偶数,则1的个数是一样的。因为偶数的末尾一定是0,右移一位不会改变1的个数。
public int[] countBits(int num){
        int[] dp=new int[num+1];
        dp[0]=0;
        for(int i=1;i<=num;i++){
            if(i%2==0){
                dp[i]=dp[i>>1];
            }
            else{
                dp[i]=dp[i-1]+1;
            }
        }
        return dp;
    }









