自然数拆分

原创 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;
}

自然数拆分问题

#include#includelong res[1024],Total ;//n是需要拆分的数,m是拆分的进度。void fen(long n,long m){    long rest ;    ...
  • banzhiyu
  • banzhiyu
  • 2007年05月07日 22:44
  • 1970

自然数的拆分问题(递归)

#include"stdio.h" void fun(int n,int k) { static int s[50]; if(n==0) { int j; for(j=0;j printf("%-2d...
  • oWuGuanFengYue123
  • oWuGuanFengYue123
  • 2013年10月28日 20:54
  • 999

(c)自然数的拆分问题(回溯 递归)

  • yjbbrqw0401
  • yjbbrqw0401
  • 2009年08月24日 13:26
  • 1151

自然数分解

1.题目描述 题目来源:NEU2015年2月月赛 G题 题目大意:给出一个自然数N,它能分解成一串连续自然数的和,如15 = 7+8 = 4+5+6 = 1+2+3+4+5 。问有多少种分法,15有...
  • neu_chenguangq
  • neu_chenguangq
  • 2015年02月28日 12:56
  • 748

数字拆分--递归

将一个数字拆分为几个自然数相加的形式,列举出所有可能。 比如: 输入:5 输出: 1 + 1 + 1 + 1 + 1 1 + 1 + 1 + 2 1 + 1 + 3 1 + 2 + 2 ...
  • whd526
  • whd526
  • 2016年03月06日 20:43
  • 885

【NOIP提高】自然数

DescriptionSolutionmex是清华夏令营的题目,这道NOIP的题绝对比那道题难。用50分预处理一个东西设b[i]=mex(1,i)。 先用50分求出b数组。推广我们试着把mex(1,...
  • doyouseeman
  • doyouseeman
  • 2016年08月11日 17:33
  • 299

拆分自然数

http://www.cnblogs.com/JeffreyZhao/archive/2009/06/21/1507847.html# 给出sum、min、max和n四个正整数,请输出所有将...
  • sunmenggmail
  • sunmenggmail
  • 2012年09月16日 17:38
  • 1033

【NOIP2016提高A组集训第7场11.4】分解数

DescriptionDpstr学习了动态规划的技巧以后,对数的分解问题十分感兴趣。 Dpstr用此过程将一个正整数x分解成若干个数的乘积:一开始令集合A中只有一个元素x,每次分解时从A中取一个元素...
  • doyouseeman
  • doyouseeman
  • 2016年11月04日 20:54
  • 667

自然数拆分。

  • lllcccppp
  • lllcccppp
  • 2009年07月14日 12:45
  • 498

自然数n拆成不同的自然数的和

/** * 0/1 背包问题,简化版。 * 将自然数n拆成不同的自然数的和的形式有多少种方案。 * * 动态规划: * 从前i个数中选择若干个数,其和等于j,一共有f(i, j)种方案。 ...
  • wangche320
  • wangche320
  • 2013年06月28日 10:12
  • 291
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:自然数拆分
举报原因:
原因补充:

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