确实想了很久才想出来,解决方案如下:
补充:反思了一下,之前的卡顿是因为一直没有找到突破口,感觉变量太多,不知道以哪个作为循环的终止条件。
后来想通了,就用当前还有多少啤酒作为循环终止条件。因为只要有酒就会继续喝,只要喝就会产生空瓶子,只要空瓶子足够多,就会继续有酒喝。
"""
Created on 2017/3/12
@author: cat
“ 有1000瓶啤酒,每喝完一瓶得到一个空瓶子,每3个空瓶子又能换1瓶啤酒,
喝掉以后又得到一个空瓶子。问总共能喝多少瓶啤酒?还剩多少空瓶子”
"""
def compute(beer_count):
drink =
0
c_drink = beer_count
rest =
0
while c_drink >
0:
drink += c_drink
rest += c_drink
c_drink = rest /
3
rest %=
3
return drink, rest
print str(compute(
1000))
计算结果如下:(1499, 2)
思路如下:
要计算一共喝了多少,一定要计算每次可以喝多少空瓶子每次都在变化,每次可以喝的啤酒数量也在变化只要还有一瓶酒,就可以继续喝。
created by python
转载请注明原文地址: https://ju.6miu.com/read-38564.html