3/9/10/11/12 RE
查看原帖
3/9/10/11/12 RE
1058586
hjk20120612楼主2024/10/25 13:06
#include<bits/stdc++.h>
using namespace std;
long long a,n,x[100],q;
long long lpow(long long o,long long p){
	return long(pow(o,p));
}
void po2(long long a,long long n){
	while(a!=0){
		if(lpow(2,n)<=a){
			a-=lpow(2,n);
			x[q]=lpow(2,n);
			q++;
		}
		n--;
	}
}
int main(){
	cin>>a;
	if(a%2==0){
		while(lpow(2,n+1)<a){
		    n++;
	    }
	    if(lpow(2,n+1)==a){
		    cout<<lpow(2,n+1);
	    }
		po2(a,n);
		for(long long i=0;i<q;i++){
			cout<<x[i]<<" ";
		}
	}
	else{
		cout<<-1;
	}
	return 0;
}
2024/10/25 13:06
加载中...