[Codewars]-Explosive Sum
题目:
- 翻译成中文是整数分拆
- 简单说:一个整数可以分拆若干个整数之和,问这种组合有多少种?
- 举个例子:整数4,可以是
1+1+1+1, 1+1+2, 1+3, 2+2, 4
共5种,故应该返回5.
思路:
- 思路可以参考百度:整数分拆
- 我简单解释下:
- 把一个整数分割成若干个不大于m的整数的和,符合以下规律
- 这样思路就很清晰了,直接用递归就可以了
- 但是(这个但是很重要),
- 细心观察你会发现用递归法,其中重复计算了很多个数。
- 比如:计算
f(10,10)
f(10,10) = 1+f(10,9)
= 1+f