解题思路:
注意事项:
参考代码:
#include <bits/stdc++.h> using namespace std; int z[1000000]; int er(long long a) { long long sum=0; for(int i=0; ; i++) { sum+=pow(2,i); if(sum>a) return sum/2; if(sum==a) return sum; sum=0; } } int main() { int hh; long long a; cin>>a; if(a%2!=0) { cout<<-1<<endl; return 0; } for(int i=0; ;i++) { int y=a; z[i]=er(a); a-=z[i]; if(y-z[i]<=0) { hh=i; break; } } for(int i=0;i<=hh;i++) { cout<<z[i]<<" "; } return 0; }
0.0分
2 人评分
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:650 |
printf基础练习2 (C语言代码)浏览:648 |
WU-链表数据求和操作 (C++代码)浏览:1382 |
WU-整除问题 (C++代码)浏览:648 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:648 |
1128题解(返回值为数组的情况)浏览:571 |
1035 题解浏览:875 |
C语言程序设计教程(第三版)课后习题9.2 (C语言代码)浏览:646 |
字符删除 (C语言代码)浏览:767 |
C二级辅导-温度转换 (C语言代码)浏览:575 |