喝汽水情景 2: 递归 | 您所在的位置:网站首页 › 一瓶quizas › 喝汽水情景 2: 递归 |
一个人买汽水,一块钱一瓶汽水,三个瓶盖可以换一瓶汽水,两个空瓶可以换一瓶汽水,问20块钱可以买多少汽水? #python -version: python3 def soda(n, bottle, cap): print(['当前能喝瓶数', '当前剩余空瓶数', '当前剩余瓶盖数'], [n, bottle, cap]) # 兑换剩下的空瓶,加上喝完饮料剩下的空瓶 bottle = bottle + n # 兑换剩下的瓶盖,加上喝完饮料剩下的瓶盖 cap = cap + n # 喝了饮料之后,当空瓶数小于2,同时瓶盖小于3时,则直接返回 当前所喝的瓶数 if bottle < 2 and cap < 3: return n else: # 累加上所有喝的饮料数,以及把兑换饮料瓶数,剩余空瓶数,剩余瓶盖数进入递归 return n + soda(bottle//2+cap//3, bottle % 2, cap % 3) # 递归 def main(): for i in [1, 3, 5, 20]: # Money = int(input('Please input money: ')) Money = i print('\n') print(str(Money) + ' 元钱') soda_total = soda(Money, 0, 0) print(str(Money)+' 元钱'+'总共能喝苏打水瓶数为: '+str(soda_total)) if __name__ == '__main__': main()运行结果: 嗯~~~,空瓶不借了,瓶盖也不借了 Game Over~~~ |
CopyRight 2018-2019 实验室设备网 版权所有 |