|
- #include <algorithm>
- #include <iostream>
- #include <cmath>
- #include <cstring>
- #include <map>
- #include <string>
- #include <vector>
- #include <queue>
- #include <stack>
- #include <cstdio>
- #include <cstdlib>
- using namespace std;
- int n,a[20];
- void dfs(int left,int last,int w)
- {
- if(left==0&&w!=1)
- {
- for(int i=1;i<w;i++)
- printf("%d+",a[i]);
- printf("%d\n",a[w]);
- return ;
- }
- for(int i=last;i<=left;i++)
- a[w+1]=i,dfs(left-i,i,w+1);
- }
- int main()
- {
- scanf("%d",&n);
- dfs(n,1,0);
- return 0;
- }
复制代码 |
|