我们老师说y
需要初始化,可是后面每个要判断(我指
if(y[k--])
printf("%d ",i);
)的值都被赋值过了,应该不用初始化啊(求大佬解答qwq)。
完整版代码:
#include"stdio.h"
#include"math.h"
int main(void){
int n,y[30],k=0;
scanf("%d",&n);
if(n%2==1)
printf("-1");
else{
while(n!=0){
y[k++]=n%2;
n/=2;
}
for(int i=pow(2,k);i>=2;i/=2)
if(y[k--])
printf("%d ",i);
}
return 0;
}