数字算法问题

来源:百度知道 编辑:UC知道 时间:2024/05/28 07:24:56
题目是这样的:
3 = 2+1 = 1+1+1
4 = 3 + 1 = 2 + 2 = 2 + 1 + 1 = 1 + 1 + 1 + 1
5 = 4 + 1 = 3 + 2 = 3 + 1 + 1 = 2 + 2 + 1 = 2 + 1 + 1 + 1 = 1 + 1 +1 +1 +1

给出一个自然数,列出其所有的拆分方法,数字顺序无关。
请达人给出思路即可,不用源程序,谢谢。

首先想问下LZ 1个问题:

1.LZ第一次提问么?

以前研究过,现在来解答LZ:
2 1+1; 0+2
3 1+1+1; 1+2; 0+3
4 1+1+1+1; 1+1+2; 1+3; 2+2; 0+4
5 1+1+1+1+1 1+1+1+2; 1+1+3; 1+2+2; 1+4; 2+3; 0+5
由以上规律可以看出,除了本身划分为0+本身外,其他每个划分都至少为两项划分。人为约定下:“所有划分中的数按升序排列”。则划分N和划分N-1之间存在的关系如下:
1、所有N-1的划分式前+1都是N的划分式(比如:1+1 =>1+ 1+1);
2、比较所有N-1划分式,如果在一个划分里“第一个数<第二个数”(上面排序的目的在此),则把第一个数的值加1,然后成为N的划分式(比如:1+2 => 2+2)。

---------------------------------------------------------------------
本人不善编程,想要源代码也没,希望能帮助LZ~