哈哈哈
2022-12-03 15:54:07
发布于:江苏
1298阅读
0回复
0点赞
直接上代码
#include <bits/stdc++.h>
using namespace std;
long long n,ans,j = 1;
int main(){
cin>>n;
if(n%2==1){
ans = -1;
cout<<ans;
return 0;
}
while(pow(2,j)<10000000){
if(pow(2,j)==n){
ans = n;
cout<<ans;
return 0;
}
j++;
}
while(n>=2){
int tmp = 1;
while(pow(2,tmp)<=n){
tmp+=1;
}
ans = pow(2,(tmp-1));
n-=ans;
cout<<ans<<" ";
}
return 0;
}
全部评论 2
格式有误!看着好别扭啊
2023-07-01 来自 四川
1#include <bits/stdc++.h> using namespace std; long long n,ans,j = 1; int main(){ cin>>n; if(n%2==1){ ans = -1; cout<<ans; return 0; } while(pow(2,j)<10000000){ if(pow(2,j)==n){ ans = n; cout<<ans; return 0; } j++; } while(n>=2){ int tmp = 1; while(pow(2,tmp)<=n){ tmp+=1; } ans = pow(2,(tmp-1)); n-=ans; cout<<ans<<" "; } return 0; }
1周前 来自 四川
0
有帮助,赞一个