为什么要像题解那样复杂?

P7071 [CSP-J2020] 优秀的拆分

%%%
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


| 下一页