50分,C++

P7071 [CSP-J2020] 优秀的拆分

改了一下,改成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


|