递归"/>
喝汽水情景 2: 递归
一个人买汽水,一块钱一瓶汽水,三个瓶盖可以换一瓶汽水,两个空瓶可以换一瓶汽水,问20块钱可以买多少汽水?
#python -version: python3def soda(n, bottle, cap):print(['当前能喝瓶数', '当前剩余空瓶数', '当前剩余瓶盖数'], [n, bottle, cap])# 兑换剩下的空瓶,加上喝完饮料剩下的空瓶bottle = bottle + n# 兑换剩下的瓶盖,加上喝完饮料剩下的瓶盖cap = cap + n# 喝了饮料之后,当空瓶数小于2,同时瓶盖小于3时,则直接返回 当前所喝的瓶数if bottle < 2 and cap < 3:return nelse: # 累加上所有喝的饮料数,以及把兑换饮料瓶数,剩余空瓶数,剩余瓶盖数进入递归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 = iprint('\n')print(str(Money) + ' 元钱')soda_total = soda(Money, 0, 0)print(str(Money)+' 元钱'+'总共能喝苏打水瓶数为: '+str(soda_total))if __name__ == '__main__':main()
运行结果:
嗯~~~,空瓶不借了,瓶盖也不借了
Game Over~~~
更多推荐
喝汽水情景 2: 递归
发布评论