#include <iostream>
#include <cmath>
using namespace std;
int main()
{
long long n, d = 0;
freopen("power.in","r",stdin);
freopen("power.out","w",stdout);
cin >> n;
long long a[30];
for (long long i = 30; i >= 1; i --)
{
long long b = pow(2, i);
if (n >= b)
{
a[d ++] = b;
n -= b;
}
}
if (n == 0)
{
for (long long i = 0; i < d - 1; i ++)
{
cout << a[i] << ' ';
}
cout << a[d - 1];
}
else
{
cout << "-1";
}
return 0;
}
帮看看哪里有问题?