改了一下,改成else了,但是还是只有80分
```cpp
#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
cin>>n;
if(n==0||n%2!=0) {
cout<<-1;
}
else {
while(1) {
if(n<=0) {
break;
}
else {
for(int i=1;i<=n;i++) {
if(pow(2,i+1)>n) {
cout<<pow(2,i)<<" ";
n-=pow(2,i);
break;
}
}
}
}
}
return 0;
}
```
by shumu @ 2023-10-31 18:56:06
TLE ? RE ? WA ?
by A_chicken_boy @ 2023-10-31 18:56:15
@[A_chicken_boy](/user/774204) WA
by shumu @ 2023-10-31 18:59:07
```cpp
#include <bits/stdc++.h>
using namespace std ;
int a[10000] ;
int ans[10000] ;
int main ( ){
int n ;
cin >> n ;
if ( n % 2 == 1 ){
cout << -1 ;
return 0 ;
}
a[1] = 2 ;
int x ;
for ( int i = 2 ; ; ++i ){
a[i] = a[i-1] * 2 ;
if ( a[i] > n ){
x = i ;
break ;
}
}
--x;
for ( int i = 0 ; i <= x ; ++i ){
if ( n == 0 ){
break ;
}
ans[i] = n % 2 ;
n /= 2 ;
}
for ( int i = x ; i >= 0 ; --i ){
if ( ans[i] ){
cout << a[i] << " " ;
}
}
return 0 ;
}
```
by A_chicken_boy @ 2023-10-31 19:16:02
你可以参考我的代码
by A_chicken_boy @ 2023-10-31 19:16:46
@[A_chicken_boy](/user/774204) 谢谢
by shumu @ 2023-10-31 19:23:29