计蒜客不需要写freopen?
0分奇怪?
#include<iostream>
using namespace std;
int a,b=0;
char ans[100005];
int i=1;
int q(int a,int y)
{
if(y==1)
{
return a;
}
if(y%2==0)
{
int t=q(a,y/2);
t=t*t;
return t;
}
if(y%2!=0)
{
int t=q(a,y/2);
t=t*t;
t=t*a;
return t;
}
}
int main()
{
cin>>a;
if(a%2!=0)
{
cout<<"-1";
return 0;
}
while(a)
{
if(a%2==1)
{
a=a/2;
ans[i]='1';
i++;
}
if(a%2==0)
{
a=a/2;
ans[i]='0';
i++;
}
}
for(int j=i;j>=1;j--)
{
if(ans[j]=='1')
{
cout<<q(2,j-1)<<" ";
}
}
return 0;
}