题解 | #放苹果#

放苹果

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

def count(pingguo, panzi):
    if pingguo == 0 or panzi == 1 or pingguo == 1: #苹果没有或者只有一个,盘子只有一个,这三种情况只有一种放法
        return 1
    elif panzi > pingguo:  #盘子比苹果多,肯定有盘子没有苹果,所以对题上的情况,那就是多余的盘子就是没用的
        return count(pingguo, pingguo)
    else:  #另外的情况就是每个盘子都有苹果,多出来的苹果放在盘子中;至少有一个盘子没有,那就是所有的苹果放在panzi-1个盘子中
        return count(pingguo - panzi, panzi) + count(pingguo, panzi - 1)
    return


while True:
    try:
        apple, disk = map(int, input().split())  #使用map函数将split分开的字符串转换成int类型的
        print(count(apple, disk))
    except:
        break

全部评论

相关推荐

起名字真难233:人家只有找猴子的预算,来个齐天大圣他们驾驭不住呀😂😂
点赞 评论 收藏
分享
评论
3
3
分享

创作者周榜

更多
牛客网
牛客企业服务