题目描述
输入输出格式 输入格式:
输入输出样例
输入样例#1:
3
输出样例#1:
2
1 2
分析:
先把所有钱袋都可以看成一个取或不取的情况。那么这些钱袋取或不取就可以看作0或1(取或不取)。所以我们就把钱袋里钱的数量定为2^n个。
代码
#include <iostream>
#include <cstdio>
int main()
{
int m, tot = 0, ans[30];
scanf("%d", &m);
for(; m >> 1; m >>= 1)
ans[++tot] = (m >> 1) + (m & 1);
printf("%d\n1", tot + 1);
while(tot)
printf(" %d", ans[tot--]);
return 0;
}