全部评论 3

  • #include<bits/stdc++.h>
    using namespace std;
    int n;
    int main(){
    	cin>>n;
    	if(n&1){
    		cout<<-1;
    	}
    	else{
    		for(int i=23;i>=1;i--){
    			if((n>>i)&1){
    				cout<<(1<<i)<<" ";
    			}
    		}
    	}
    }
    

    2025-11-02 来自 重庆

    1
  • #include<iostream>
    using namespace std;
    int add(int x0){
        int x=x0;
        for(int i=1;;i=i*2){
            if(i>x){
                return i>>1;
            }
        }
        return 0;
    }
    int main(){
        int n;
        cin>>n;
        if(n%2==1){
            cout<<-1;
            return 0;
        }
        int c;
        while(n!=0){
        //for(int i=0;i<10;i++){
            //cout<<n<<" ";
            c=add(n);
            cout<<c<<" ";
            n-=c;
        }
        return 0;
    }
    

    2025-11-19 来自 广东

    0
  • 没我好

    #include <bits/stdc++.h>
    
    using namespace std;
    
    long long n;
    
    int main( ) {
    	cin >> n;
    	
    	if (n % 2 == 1) {
    		cout << "-1" << endl;
    		return 0;
    	}
    	long long x = log2(n);
    	
    	for (int i = x ; i >= 1 ; i--) {
    		if ((1 << i) <= n) {
    			cout << (1 << i) << " ";
    			n -= (1 << i);
    		}
    	}
    	
    	return 0;
    })
    

    2025-09-12 来自 福建

    0
暂无数据

提交答案之后,这里将显示提交结果~

首页