A36优秀的拆分求助
原题链接:36.[CSP-J 2020] 优秀的拆分2026-08-30 21:04:24
发布于:江苏
#include <bits/stdc++.h>
using namespace std;
int n,dp[25],num = 4;
int main()
{
cin >> n;
dp[1] = 2;
for(int i = 2;i <= 23;i ++)
{
dp[i] = dp[i - 1] + num;
num >>= 1;
}
bool flag = 0,nu = 0;
for(int i = 1;i <= 23;i ++)
{
if(dp[i] == n)
{
nu = i;
flag = 1;
}
}
if(flag)
{
for(int i = nu + 1;i >= 1;i --)
{
cout << (1 << i) << " ";
}
}
else cout << -1;
return 0;
}
这里空空如也

















有帮助,赞一个