代码如下:
#include<iostream>
using namespace std;
int a[13];
int n;
int jh(){
int c;
for(int i=1; i<=n; i++)
c+=a[i];
if(c<n)
return 1;
if(c==n)
return 2;
return 0;
}
void dfs(int p){
if(jh()==2){
for(int i=1; i<n; i++)
printf("%d+",a[i]);
cout<<a[n]<<endl;
return;
}
for(int i=a[p-1]; i<=n; i++){
a[p]=i;
if(jh())
dfs(p+1);
}
return;
}
int main()
{
cin>>n;
for(int i=1; i<=n; i++){
a[1]=i;
dfs(2);
}
return 0;
}