问题描述:
求一个大于零的自然数n的所有和的情况
简单递归题
但是我还是想要贴出来,简单,但是典型
#include<iostream>
using namespace std;
int n;
int a[10000];
void dfs(int w,int k,int m)
{
if(k>n)
return ;
if(k==n)
{
for(int i=0;i<m;i++){
if(i!=m-1)
cout<<a[i]<<"+ ";
else
cout<<a[i];
}
cout<<endl;
}
for(int i=w;i<n;i++)
{
if(i+k>n)
return ;
a[m]=i;
dfs(i,k+i,m+1);
}
}
int main()
{
while(cin>>n)
{
dfs(1,0,0);
}
}