输入一个正整数a,输出它的不降拆分
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#include<iostream> #include<cstdio> using namespace std; int a; int ans[1005],l; void print() { for(int i=0;i<l;i++) { if(i) cout<<" "; cout<<ans[i]; } cout<<endl; return ; } void dfs(int sum,int st) { if(sum==a) { print(); return ; } if(sum>a) return ; for(int i=st;i<a;i++) { sum+=i; ans[l++]=i; dfs(sum,i); l--; sum-=i; } } int main() { cin>>a; dfs(0,1); return 0; }