自然数的拆分问题
#include<bits/stdc++.h>
using namespace std;
int a[1005];
int dfs(int t,int r,int first){
if(r==1) {
if(t==2) return 0 ;
for(int i=1;i<t-1;i++)
cout<<a[i]<<"+";
cout<<a[t-1];
cout<<endl;
return 0;
}
for(int i=first;i<r;i++){
a[t]=i;
dfs(t+1,r-i,i);
}
}
int main(){
int n;
cin>>n;
dfs(1,n+1,1);
return 0;
}