题解 | #放苹果#
放苹果
https://www.nowcoder.com/practice/bfd8234bb5e84be0b493656e390bdebf
盘子从左到右依次递归
fun函数:a当前盘子最多放几个,b还有几个盘子可以放,m可放的盘子总共要放几个,tol计数
t:m/n向上取整,表示这个盘子最少放几个
min函数保证从左到右苹果数不增,确保方式不重复
m,n = list(map(int, input().split()))
def fun(a,b,m,tol):
if m == 0 or b == 1:
tol += 1
return tol
t = m//b
if m != t*b:
t += 1
while a >= t:
tol = fun(min(a,m-a),b-1,m-a,tol)
a -= 1
return tol
tol = 0
print(fun(m,n,m,tol))


