@[MinecraftYinAo](/user/495681) 你想问啥
by 幽灵特工 @ 2021-08-15 22:15:58
[测评记录](https://www.luogu.com.cn/record/56010223)
by MinecraftYinAo @ 2021-08-15 22:16:37
@[幽灵特工](/user/332549) 我这只有40分。
by MinecraftYinAo @ 2021-08-15 22:17:09
@[MinecraftYinAo](/user/495681)
```cpp
#include <bits/stdc++.h>
using namespace std;
int n;
int main() {
cin >> n;
if (n & 1) {
cout << -1 << endl;
return 0;
} else {
for (int i = 30; i >= 1; i--) {
if (n & (1<<i)) cout << (1<<i) << ' ';
}
}
cout << endl;
return 0;
}
```
by 0x3F @ 2021-08-15 22:20:46
@[MinecraftYinAo](/user/495681) az真的只能对照题解改改了
by 幽灵特工 @ 2021-08-15 22:21:06
1. 数组开小了,是 $1\leq n\leq 10^7\leq 2^{24}$ 哦。
2. 用于循环输出的 $i$ 的初始值错了。
by _caiji_ @ 2021-08-15 22:21:16
@[caijianhong](/user/390033) 谢谢大佬,我来改
by MinecraftYinAo @ 2021-08-15 22:22:31
谢谢你们
by MinecraftYinAo @ 2021-08-15 22:23:00
@[caijianhong](/user/390033) 大佬……wa了三个点
[WA了](https://www.luogu.com.cn/record/56011529)
by MinecraftYinAo @ 2021-08-15 22:33:17
```cpp
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,i,a[24]={0,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,262144,524288,1048576,2097152,4194304,8388608},b[20]={0};
cin>>n;
int num=0,x=n;
if(n%2!=0)
{
cout<<-1;
return 0;
}
i=0;
while(x!=0)
{
b[i]=x%2;
x/=2;
i++;
num++;
}
for(i=num-1;i>=0;i--)
if(b[i]==1)
cout<<a[i]<<" ";
return 0;
}
```
by MinecraftYinAo @ 2021-08-15 22:33:59