题解 | #放苹果#

放苹果

http://www.nowcoder.com/practice/bfd8234bb5e84be0b493656e390bdebf

"""s = input().split()
m = int(s[0])
n = int(s[1])"""
'''while True:
    try:
        m,n = map(int, input().split())
        dp = [[1 for i in range(n+1)] for i in range(m+1)]
        for i in range(m+1):
            dp[i][0] = 0
            for j in range(1, n+1):
                for i in range(1, m+1):
                    if j > i:
                        dp[i][j] = dp[i][i]
                    else:
                        dp[i][j] = dp[i][j-1] + dp[i-j][j]
        print(dp[m][n])
    except:
        break'''


# 放苹果分两种情况,一种是有盘子为空,一种是每个盘子都有苹果
# 令(m,n)表示将m个苹果放入n个盘子中的摆放方法总数
# 1. 假设有一个盘子为空,则(m,n)问题转化为将m个苹果放在n-1个盘子上,即求得(m, n-1)即可
# 2. 假设所有盘子都装有苹果,则每个盘子至少有一个苹果,即最多剩下m-n个苹果,即问题转化为将m-n个苹果
# 放到n个盘子里,即求(m-n, n)
def f(m,n):
    if m < 0 or n < 0:
        return 0
    elif m == 1 or n == 1:
        return 1
    else :
        return f(m, n-1) + f(m-n, n)
while True:
    try:
        m, n = map(int, input().split())
        print(f(m, n))
    except:
        break

全部评论
为什么把m,n转换成整型改成分别输入两个整型就报错了呢?
点赞 回复 分享
发布于 2022-04-26 21:42

相关推荐

04-09 21:07
门头沟学院 Java
a了几道
明天也要十一点半之前起床:最恶心的一集。各个都会做,各个都做不对,乍一看开心坏了以为自己能 ak,结果是春招以来做得最垃圾的一次。第二题测试数据里面 k 为什么有 0,直接全错;第三题感觉自己啥情况都考虑了但是只有 60%。
投递拼多多集团-PDD等公司10个岗位 >
点赞 评论 收藏
分享
mq2:我倒是觉得这种敞亮一点好。能接受就去不能就不去呗。 完了跟现在“正常”公司一样,hr说的天花乱坠,进去一看根本就是996核动力牛马,想走又没应届生身份了。岂不是更糟。
点赞 评论 收藏
分享
评论
3
2
分享

创作者周榜

更多
牛客网
牛客企业服务