拆分自然数的几种算法
【问题描述】
自然数的拆分:
任何一个大于
1
的自然数
N
,
总可以拆分成若干个自然数之和,
并且有多种拆分方法。例如自然数
5
,可以有如下一些拆分方法:
【问题描述】
自然数的拆分:
任何一个大于
1
的自然数
N
,
总可以拆分成若干个自然数之和,
并且有多种拆分方法。例如自然数
5
,可以有如下一些拆分方法:
5=1+1+1+1+1
5=1+1+1+2
5=1+2+2
5=1+4
5=2+3
算法一
用回溯法来实现
针对所给问题,定义问题的解空间;如本题对
5
的拆分来说,
1<=
拆分的数
<=5
。
确定易
于搜索的解空间结构;如本题对
5
的拆分来说,用
x[]
数组来存储解,每个数组元素的取值
范围都是
1<=
拆分的数
<=5
<