欢迎使用本站,预祝练习时长两年半的选手们到成功! [本模块信息来自tem/def/head]

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)
    顶一下
    (0)
    0%
    踩一下
    (0)
    0%