也不知道为什么最后两个点过不去
using namespace std;
int a[2000000];
int main()
{
int n,x=0;
cin>>n;
if(n%2==1)
{
cout<<"-1"<<endl;
return 0;
}
for(int i=1;i<=20;i++)
if(pow(2,i)==n)
{
cout<<n<<endl;
return 0;
}
for(int i=1;i<=20&&n!=0;i++)
{
if(pow(2,i)>n)
{
x++;
a[x]=pow(2,i-1);
n-=pow(2,i-1);
i=1;
}
if(pow(2,i)==n)
{
x++;
a[x]=pow(2,i);
n-=pow(2,i);
break;
}
}
for(int i=1;i<=x;i++)
cout<<a[i]<<" ";
return 0;
}```