题解
2024-10-05 19:58:27
发布于:广东
2阅读
0回复
0点赞
首先,很容易得出结论,只要是一个偶数,都肯定有优秀的拆分。
而如果这个数是一个偶数,只需要每一次都找到最靠近这个数的2的某次幂,再减掉就可以了。
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin >> n;
if(n % 2 == 1){
cout << -1;
} else {
while(n > 1){
int z = 1;
while(z * 2 <= n){
z *= 2;
}
n -= z;
cout << z << " ";
}
}
return 0;
}
这里空空如也
有帮助,赞一个