题目:
思路:
状态方程:
m为苹果数量,n为盘子数量
针对盘子,是否有一个为空可发现:
dp(m,n)=dp(m, n -1) + dp(m - n, n) // 第n个盘子是否为空+各个盘子均放了一个
提交:
while(line = readline()) {
let arr = line.split(' ').map(item => parseInt(item))
// m为苹果数量 n为盘子数量
function dp(m, n) {
// 苹果不够摆满
if (m < 0) {
return 0
}
// 苹果刚好摆满
if (m === 0 || m === 1) {
return 1
}
if (n === 1) {
return 1
}
// 分情况:第n个盘子是否为空 、各个盘子均放了一个
return dp(m, n -1) + dp(m - n, n) // 7 2
// 5 2
}
console.log(dp(arr[0], arr[1]))
}