@[牟零幻巧](/user/405302) 改成a[++rap]就能过了吧(没仔细看)
by w23c3c3 @ 2020-11-08 14:40:42
另外要从rap-1开始输出
by haooo @ 2020-11-08 14:44:55
###### 改好了但是还是只有两个对的
```cpp
#include <cstdio>
using namespace std;
int main() {
int n;
int ans[100] = {0};
int rap = 0;
scanf("%d",&n);
if (n % 2 == 1) {
printf("-1");
return 0;
}
int num = n;
bool flag = false;
for (int i = 2; i <= n; i *= 2) {
if (num - i > 0) {
num -= i;
ans[++rap] = i;
flag = true;
continue;
}
if (num - i == 0) {
ans[++rap] = i;
flag = true;
break;
}
flag = false;
}
if (flag) {
for (int i = rap; i > 0; i--) {
printf("%d ",ans[i]);
}
}
else {
printf("-1");
}
return 0;
}
```
by 牟零幻巧 @ 2020-11-08 21:36:49