Joh*_*ine 0 python recursion python-2.7
对于这个问题:麦当劳以6,9或20个McNuggets的包装出售Chicken McNuggets.因此,例如,可以准确购买15个McNuggets(一个包6个,第二个包9个),但是不可能只购买16个McNuggets,因为没有6个,9个的非负整数组合为了确定是否可以准确地购买n个McNuggets,必须找到a,b和c的非负整数(可以是0),使得6a + 9b + 20c = n.并且20'加起来为16.
解决方案是
def McNuggets(n):
    if n == 0:
       return True
    if n < 0:
       return False
    return McNuggets(n-6) or McNuggets(n-9) or McNuggets(n-20)
Python如何在McNuggets(n-6),McNuggets(n-9)和McNuggets(n-20)之间做出选择?
它不会在它们之间"选择".它评估所有这些.你正在使用or它们的逻辑运算符,这意味着如果它们中的任何一个返回True,它将评估为True.
| 归档时间: | 
 | 
| 查看次数: | 585 次 | 
| 最近记录: |