#include<iostream>
#include<fstream>
using namespace std;
int n;
int ans;
int num[20];
int a[20];
void dfs(int s){
int i,j,k;
if(s>11||s>ans) return;
if(num[s]==n){
ans=s;
for(i=0;i<=ans;i++)
a[i]=num[i];
return;
}
for(i=s;i>=0;i--)
{
num[s+1]=num[s]+num[i];
if(num[s+1]>n) continue;
dfs(s+1);
}
}
void read(){
// ifstream cin("in.txt");
int i,j,k;
while(cin>>n){
if(n==0) return ;
num[0]=1;
ans=11;
dfs(0);
for(i=0;i<=ans;i++)
cout<<a[i]<<' ';
cout<<endl;
}
}
int main(){
read();
return 0;
}
转载于:https://www.cnblogs.com/zhaozhe/archive/2011/07/07/2099910.html