题解 | #放苹果#

放苹果

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

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务