2004:【20CSPJ普及组】优秀的拆分
时间:2024-06-02 10:02
作者:admin
点击:次
#include iostream#include stackusing namespace std;int jz[30]={1};int main(){ for(int i=1;i30;i++) jz[i]=jz[i-1]*2; int n; cinn; if(n%2==1) cout-1; else { stackint s; int i=0; while(n){ if(n%2) s.push(jz[i]); i++; n/=2; } while(!s.empty()){
#include <iostream>
#include <stack>
using namespace std;
int jz[30]={1};
int main(){
for(int i=1;i<30;i++) jz[i]=jz[i-1]*2;
int n;
cin>>n;
if(n%2==1) cout<<-1;
else {
stack<int> s;
int i=0;
while(n){
if(n%2) s.push(jz[i]);
i++;
n/=2;
}
while(!s.empty()){
cout<<s.top()<<" ";
s.pop();
}
}
return 0;
}
(责任编辑:admin) |