题解 | #放苹果#

放苹果

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

把大问题分解为两个子问题通过递归实现 程序的出口需要考虑n和m的不同情况:大于小于和等于 大于:全满是不可能的,一个程序出口 等于:m==0 n==1出口 小于:n==1 m==1 m==0出口(小于可能被递减成等于)只有一个水果时不管剩几个盘子都只有一种方法,只有一个盘子时不管几个水果也只有一种方法

while True:
    try:
        m, n = map(int, input().split())
        
        def backtrack(m,n):
            if n==1 or m==1 or m==0:#
                return 1
            elif m<0:
                return 0
            else:
                return backtrack(m,n-1)+backtrack(m-n,n) #存在空和不存在空,如果n>m,肯定属于不存在空
        
        print(backtrack(m,n))
    except:
        break
全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 16:15
我应届生,去年10月份开始在这家公司实习,到今年10月份正好一年想(实习+试用期),在想要不要提前9月份就离职,这样好找工作些,但又差一个月满一年,又怕10月份国庆回来离职,容易错过了下半年的金九银十,到年底容易gap到年后
小破站_程序员YT:说这家公司不好吧,你干了快一年 说这家公司好吧,你刚毕业就想跑路说你不懂行情吧,你怕错过金九银十说 你懂行情吧,校招阶段在实习,毕业社招想换工作 哥们,我该怎么劝你留下来呢
应届生,你找到工作了吗
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-08 11:16
点赞 评论 收藏
分享
醉蟀:你不干有的是人干
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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