这个题实质就是求正整数的二进制表示,所有的偶数都可以。
#include<stdio.h>
#include<math.h>
int main()
{
int n, i, m;
scanf("%d", &n);
if (n % 2 == 1)
printf("%d\n", -1);
else
{
i = (int)log2(n) + 1;
while (n > 0)
{
m = pow(2, i);
if (n >= m)
{
printf("%d ", m);
n -= m;
}
i--;
}
printf("\n");
}
return 0;
}