4 条题解
-
1
#include<bits/stdc++.h> using namespace std; int a[30]; int main() { int n; cin >> n; if(n%2!=0) { cout << -1; return 0; } a[1]=1; for(int i = 2;i < 26;i++) { a[i]=a[i-1]*2; } for(int i = 25;i >= 2;i--) { if(n>=a[i]) { n-=a[i]; cout << a[i] << " "; } if(n==0) { return 0; } } return 0; }
仅供参考
-
-1
#include<bits/stdc++.h> using namespace std; int n; bool erdemi(int n){ int sum=1; for(int i=1;i<=30;i++){ sum*=2; if(sum==n)return true; } return false; } int zhi(int n){ int sum=1; for(int i=1;i<=30;i++){ sum*=2; if(sum>n)return sum/2; } } int main(){ cin>>n; if(n%2==1)cout<<-1; else if(erdemi(n))cout<<n; else{ while(n){ cout<<zhi(n)<<' '; n-=zhi(n); } } return 0; }
禁止抄袭
-
-2
#include<bits/stdc++.h> using namespace std; int n; bool erdemi(int n){ int sum=1; for(int i=1;i<=30;i++){ sum*=2; if(sum==n)return true; } return false; } int zhi(int n){ int sum=1; for(int i=1;i<=30;i++){ sum*=2; if(sum>n)return sum/2; } } int main(){ cin>>n; if(n%2==1)cout<<-1; else if(erdemi(n))cout<<n; else{ while(n){ cout<<zhi(n)<<' '; n-=zhi(n); } } return 0; }
禁止抄袭
- 1
信息
- ID
- 1798
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- 递交数
- 54
- 已通过
- 24
- 上传者