%%%
by 囧仙 @ 2020-11-11 12:53:32
```
#include<bits/stdc++.h>
using namespace std;
stack<int> s;
signed main(){
int n;
scanf("%d",&n);
if(n&1) exit(puts("-1")&0);
while(n) s.push(n&(-n)),n-=n&(-n);
while(!s.empty()) printf("%d ",s.top()),s.pop();
return 0;
}
```
你好逊啊还要22行
by dead_X @ 2020-11-11 12:55:12
诶确实为什么这么复杂,需要数组吗
by critnos @ 2020-11-11 12:56:00
您太 **强** 了啊,无敌了啊,22 行 **就** 解决了啊
by zhoukangyang @ 2020-11-11 12:56:16
**%%%**
by zhoukangyang @ 2020-11-11 12:57:39
jbl.
by MuelsyseU @ 2020-11-11 12:59:26
你好菜啊。
```cpp
#include<bits/stdc++.h>
int main(){
int n; scanf("%d",&n); if(n&1) puts("-1"); else
for(int i=30;i>=1;--i) if(n&(1<<i)) printf("%d ",1<<i);
}
```
by 囧仙 @ 2020-11-11 13:02:35
22行有啥好炫耀的啊
by FutureThx @ 2020-11-11 13:09:56
```
#include<iostream>
int main(){int n,i=1<<30;std::cin>>n;if(n&1)puts("-1");else while(~(i=i/2)&1)if(n&i)std::cout<<i<<" ";}
```
为什么要像你那样复杂?
by 幻影星坚强 @ 2020-11-11 13:18:02
```cpp
#include <bits/stdc++.h>
using namespace std;
int main(){
int n; cin >> n; if(n%2==1) cout << -1;
else while(n){cout << pow(2,int(log(n)/log(2))) << " ";n-=pow(2,int(log(n)/log(2)));}
}
```
------------
~~cin换scanf还能再少一行~~
by DarkLuthics @ 2020-11-11 13:19:49