题解 | #放苹果#
放苹果
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))