```
long long n;
long long i = 1;
```
这两个改成int类型
```
cout << pow(2, i) << " ";
```
改成
```
cout << (int)pow(2, i) << " ";
```
by YouRany @ 2023-10-06 00:22:41
@[momeng](/user/959900)
废话不多说,看代码
```cpp
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int a[100000];
int main() {
int n, t=0;
scanf("%d",&n);
while(n){
a[++t] = n%2;
n = n/2;
}
if(a[1]==1) {
cout << -1;
return 0;
}
else{
for(int i = t; i >= 1; i--){
if(a[i]==0) continue;
int tmp = pow(2,i-1);
cout << a[i] * tmp << ' ';
}
}
return 0;
}
```
by Torbllino @ 2023-10-06 13:26:49
@[YouRany](/user/551569) 谢谢大佬
by moment_forever @ 2023-10-06 22:55:12
@[Torbllino](/user/383027) 谢谢大佬
by moment_forever @ 2023-10-06 22:55:44
不可以直接输出pow
by yangqixuan @ 2023-10-15 12:08:44