自然数拆分

原创 2013年12月02日 20:17:38

Problem Description

任何一个大于1的自然数n,总可以拆分成若干个小于n的自然数之和。

Input

输入有多组数据,对于每组数据就一个数n。

Output

对于每组输入输出n的拆分方法。

Sample Input

4

Sample Output

1+1+1+1
1+1+2
1+3
2+2
/*
     解题报告:4 分成的这几种情况,每种情况都是前一个数要小于或等于后面的数。
               这就是进行递归的条件,当找到他们组成的和等于N时,就是所要找的
               一种情况。直接输出就OK了。
*/
//标程:
#include<stdio.h>
#include<string.h>
int n;
int dp[1000010];
void output(int x)
{
	for(int i=1;i<x-1;i++)
		printf("%d+",dp[i]);
	printf("%d\n",dp[x-1]);
}
void dfs(int sum,int num)
{
	int i;
	if(sum==0 && num>2)
	{
		output(num);
		return ;
	}
	for(i=1;i<=sum;i++)
	{
		if(i>=dp[num-1])
		{
			dp[num]=i;
			dfs(sum-i,num+1);
		}
	}
}
int main()
{
    //freopen("a.txt","r",stdin);
	while(scanf("%d",&n)!=EOF)
	{
		memset(dp,0,sizeof(dp));
		dfs(n,1);
	}
	return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

自然数拆分

Problem Description 任何一个大于1的自然数n,总可以拆分成若干个小于n的自然数之和。 Input 输入有多组数据,对于每组数据就一个数n。 Output 对于每组...

自然数拆分

从一开始拆,往下搜。 var a:array[0..1000] of longint;     n,total:longint; procedure init; begin   re...

总结一类问题:铺地板砖,走楼梯,自然数拆分...

(1) 楼梯的走法:一个楼梯有N阶,从cia

PDF合并拆分 C#源码

  • 2017-09-09 12:03
  • 126KB
  • 下载

HBase拆分策略

转载自: http://blog.javachen.com/2014/01/16/hbase-region-split-policy.html Region 概念 Region是表...

excel大数据拆分

  • 2016-01-11 17:47
  • 54KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)