全部评论 1

  • 正经的在这里
    本质就是转化为二进制然后把是1的位置的2的幂输出

    #include<bits/stdc++.h>
    using namespace std;
    int n,ans[10005],idx = 0;
    int main(){
    	cin >> n;
    	if(n % 2 == 1){
    		cout << -1;
    		return 0;
    	}
    	while(n > 0){
    		ans[idx] = n % 2;
    		idx++;	
    		n /= 2;
    	} 
    	for(int i = idx - 1;i >= 0;i--){
    		if(ans[i] == 1) cout << (int)(ans[i]*pow(2,i)) << " ";
    		
    	}
    	return 0;
    }
    

    2025-08-10 来自 广东

    0
暂无数据

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

首页