更好的思路
查看原帖
更好的思路
1412732
litangzheng楼主2024/9/26 21:18

虽然这道题已经有足够多的题解,但我觉得没有让我满意的题解,我觉得他们都有点复杂了。
我的想法是:如果nn为奇数,输出1-1。否则

while(n!=0){\\如果n不为0
	if((n&1)==1){\\如果二进制第一位是1
		a[cnt]=sum;\\把那位的数存到数组里
		cnt++;\\下标增加
	}
	n=n>>1;sum=sum*2;\\n右移一位
}

最后倒序输出即可。

2024/9/26 21:18
加载中...