```cpp
while(n!=0)
{
if(n&1)
{
num[++tmp]=pow(2,tmp);
}
n>>=1;
}
```
n&1==1表示n是奇数,然而很显然n是偶数的时候才可以
by donghanwen1225 @ 2020-11-08 20:33:20
@[Akemi·Homura](/user/356081) tmp是加的数字的个数,所以$a[tmp]$并不一定$2^{tmp}$
by w23c3c3 @ 2020-11-08 20:36:51
@[donghanwen1225](/user/153687) 前面特判了的,这里偶数就直接移位了,不会影响输出结果的
by Night_7d5 @ 2020-11-08 20:37:00
@[w23c3c3](/user/109942) 强啊大佬%%%
by Night_7d5 @ 2020-11-08 20:38:41
@[Akemi·Homura](/user/356081) 话说你为什么要用$pow$啊
by Argon_Cube @ 2020-11-08 20:43:57
我裂开来,tmp++要是放对位置就AC了啊
by Night_7d5 @ 2020-11-08 20:49:54