题目描述
输入输出格式
输入格式:输出格式:
输入输出样例
输入样例#1:
3
输出样例#1:
2 1 2
对于一个数m,把它分成2份,一份1...m/2,另一份m/2+1...m。
如果有m/2(偶数)或m/2+1(奇数),后一份就可以由前一份得到。
#include<iostream>
#include<cstdio>
using namespace std;
int m,ans[35];
int main()
{
scanf("%d",&m);
while(m/2!=0)
{
if(m%2==0)
ans[++ans[0]]=m/2;
else
ans[++ans[0]]=m/2+1;
m/=2;
}
printf("%d\n1",ans[0]+1);
for(;ans[0];ans[0]--)
printf(" %d",ans[ans[0]]);
printf("\n");
return 0;
}