1 条题解

  • 1

    思路

    log2n\operatorname{log}_2n 向下枚举即可。 因为一个奇数必定有 202^0 ,所以直接 -1

    code

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
    	int n;
    	cin>>n;
    	if(n%2){
    		cout<<-1;
    		return 0;
    	}
    	int Pow=log(n)/log(2)+1;
    	for(Pow;Pow>=1;Pow--){
    		if(pow(2,Pow)<=n){
    			cout<<int(pow(2,Pow))<<" ";
    			n-=pow(2,Pow);
    		}
    	}
    	return 0;
    }
    
    • 1

    信息

    ID
    524
    时间
    1000ms
    内存
    256MiB
    难度
    9
    标签
    递交数
    16
    已通过
    4
    上传者