虽然这道题已经有足够多的题解,但我觉得没有让我满意的题解,我觉得他们都有点复杂了。 我的想法是:如果nnn为奇数,输出−1-1−1。否则
while(n!=0){\\如果n不为0 if((n&1)==1){\\如果二进制第一位是1 a[cnt]=sum;\\把那位的数存到数组里 cnt++;\\下标增加 } n=n>>1;sum=sum*2;\\n右移一位 }
最后倒序输出即可。