1 solutions
-
0
模拟(100pts)
- 首先任何一个数一定可以被唯一表示成一个二进制数,且奇数的最低位一定存在,所以奇数一定不是优秀的拆分,对于偶数我们可以利用位运算,从高到低依次枚举每一位。
#include<bits/stdc++.h> using namespace std; int main() { int n; cin>>n; if(n%2==1) //奇数一定不是优秀的拆分 { cout<<-1; } else { for(int i=24;i>=1;i--) //从高位开始枚举 { if(n>>i&1) cout<<(1<<i)<<" "; } } return 0; }
- 1
Information
- ID
- 1067
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 10
- Tags
- # Submissions
- 3
- Accepted
- 3
- Uploaded By