题解 | #放苹果#

放苹果

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

'''
思路:定义函数f(m,n)表示将m个苹果放入n个盘子的方法数。找到递推公式和初始条件。
对于m个苹果放进n个盘子的情况,有以下约束。
1.如果m<0,脱离数据范围,返回0
2.如果m==1或n==1,即m个苹果放到1个盘子或者1个苹果放到n个盘子里,按题意为1种结果,返回1
3.如果m>1,n>1,那么可以找到两种子情况进行递推。
A:存在盘子是空的,那么此时的分配方法数为f(m,n-1),即把m个苹果放入其余n-1个盘子里。
B:所有盘子都有苹果,那么此时的分配方法数为f(m-n,n),即每个盘子都去掉1个苹果,将剩余m-n个苹果放入n个盘子里。
于是,我们得到递推式f(m,n)=f(m,n-1)+f(m-n,n)
'''

import sys
def assign(m,n):
    if m < 0:
        return 0
    elif m==1 or n==1:
        return 1
    else:
        return assign(m,n-1) + assign(m-n,n)
m,n = map(int,input().split())
print(assign(m,n))

全部评论

相关推荐

03-02 10:51
邵阳学院 Java
红鲤鱼与绿鲤鱼i:看了你的头像不像找工作,像在找妹子
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务