//输出n拆分的所有可能
1 #include<bits/stdc++.h> 2 using namespace std; 3 int n,a[100]; 4 void dfs(int x,int y,int z) 5 { 6 if(y>n) return ; 7 if(y==n) 8 { 9 for(int i=1;i<z;i++) 10 { 11 if(i>1) cout<<"+"; 12 cout<<a[i]; 13 } 14 cout<<endl; 15 return ; 16 } 17 for(int i=x;i<n;i++) 18 { 19 a[z]=i; 20 dfs(i,y+i,z+1); 21 } 22 } 23 int main() 24 { 25 cin>>n; 26 dfs(1,0,1); 27 return 0; 28 }