题解 | #放苹果#

放苹果

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))

全部评论

相关推荐

object3:开始给部分🌸孝子上人生第一课了
点赞 评论 收藏
分享
小红书 后端选手 n*16*1.18+签字费期权
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务