您的位置:首页 > 其它

poj 2248

2011-07-07 11:42 295 查看
#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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: