#2. 自然数的拆分

题目描述

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

当n=7共14种拆分方法:

7=1+1+1+1+1+1+1
7=1+1+1+1+1+2
7=1+1+1+1+3
7=1+1+1+2+2
7=1+1+1+4
7=1+1+2+3
7=1+1+5
7=1+2+2+2
7=1+2+4
7=1+3+3
7=1+6
7=2+2+3
7=2+5
7=3+4
total=14
输入格式

输入n。

输出格式

按字典序输出具体的方案。

样例输入
7
样例输出
7=1+1+1+1+1+1+1
7=1+1+1+1+1+2
7=1+1+1+1+3
7=1+1+1+2+2
7=1+1+1+4
7=1+1+2+3
7=1+1+5
7=1+2+2+2
7=1+2+4
7=1+3+3
7=1+6
7=2+2+3
7=2+5
7=3+4

参考答案 ——

#include
using namespace std;
int a[10001]={1},n,total;
int kkk(int,int);
int p(int);
int kkk(int s,int t)
{
	int i;
	for(i=a[t-1];i<=s;i++)    
	{
		if(i>n;
	kkk(n,1);   
	return 0;
}

你可能感兴趣的:(华迈初二-搜索与回溯,算法,数据结构)