
#include<stdio.h>
#include<math.h>
int main()
{
int n,j,t=0,z;
double a,i;
int b[t];
scanf("%d",&n);
j=n%2;
n/=2;
if(j==1)
{
printf("-1");
}
else
{for(i=1;n!=0;i++)
{
j=n%2;
n/=2;
a=(pow(2,i))*j;
if(a!=0)
{
t++;
b[t]=a;}
}
for(z=t;z>0;z--)
{
printf("%d ",b[z]);
}}
return 0;
}
我的这个代码数据到26就出错了,这个怎么解决尼?
提交显示是75分。