#include<iostream>
#include<algorithm>
using namespace std;
const int maxn = 1010;
int res[maxn];
int cnt=-1;
void dfs(int n,int m,int cur)
{
if(n==0)
{
cnt++;
for(int i=0;i<cur;i++) cout << res[i] << " ";
cout << endl;
}
if(n<m) return ;
for(int i=m;i<=n;i++)
{
res[cur]=i;
dfs(n-i,i,cur+1);
}
}
int main(void)
{
int n;
cin >> n;
dfs(n,1,0);
cout << cnt << endl;
return 0;
}
2019-03-10 拆分一个数
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 判断一个数n能否同时被3和5整除。 代码: #include int main() { int n; printf...
- 1.有三个数a,b,c,要求按大小顺序把他们输出。 设计思想:这就是个冒泡排序(从大到小),小的沉下去,大的浮上去...
- 为了测试发放的退役军人优待证是否奏效,我特意选了一个名单上免费的地方。植物园和动物园,现在植物不咋好看,思来想去,...