对于大于1的自然数N (N<20) ,可以拆分成若干个大于等于1的自然数之和。
例如,当N=6时,
6=6
6=5+1
6=4+2
6=4+1+1
6=3+3
6=3+2+1
6=3+1+1+1
6=2+2+2
6=2+2+1+1
6=2+1+1+1+1
6=1+1+1+1+1+1
输入
一个大于1的自然数N,N<20
输出
所有的拆分情况.按由大到小的顺序排列。
样例输入
6
样例输出
6
5 1
4 2
4 1 1
3 3
3 2 1
3 1 1 1
2 2 2
2 2 1 1
2 1 1 1 1
1 1 1 1 1 1
代码
#include <bits/stdc++.h>
using namespace std;
int n,a[30];
void dfs(int r,int k)
{
if(r==0)
{
for(int i=1;i<k;i++) cout<<a[i]<<" "; <