4 条题解

  • -1
    @ 2024-10-19 15:00:03
    #include<bits/stdc++.h>
    using namespace std;
    int n;
    bool erdemi(int n){
    	int sum=1;
    	for(int i=1;i<=30;i++){
    		sum*=2;
    		if(sum==n)return true;
    	}
    	return false;
    }
    int zhi(int n){
    	int sum=1;
    	for(int i=1;i<=30;i++){
    		sum*=2;
    		if(sum>n)return sum/2;
    	}
    }
    int main(){
    	cin>>n;
    	if(n%2==1)cout<<-1;
    	else if(erdemi(n))cout<<n;
    	else{
    		while(n){
    			cout<<zhi(n)<<' ';
    			n-=zhi(n);
    		}
    	}
    	return 0;
    }
    

    禁止抄袭

    信息

    ID
    1798
    时间
    1000ms
    内存
    256MiB
    难度
    4
    标签
    递交数
    54
    已通过
    24
    上传者