P2404 自然数的拆分问题
题解:
#include <iostream>
using namespace std;
int n,sum;
int a[15]={1};
void print(int t)
{
for(int i=1;i<t;i++)
{
cout<<a[i]<<"+";
}
cout<<a[t]<<endl;
}
void dfs(int t)
{
for(int i=a[t-1];i<n;i++)
{
if(sum+i<=n)
{
sum+=i;
a[t]=i;
if(sum==n)
{
print(t);
}
else dfs(t+1);
sum-=i;
}
}
}
int main()
{
cin>>n;
dfs(1);
return 0;
}