一瓶汽水一塊錢,兩個(gè)空瓶或者三個(gè)瓶蓋可以換一瓶汽水被辑,請(qǐng)問我有20塊錢燎悍,可以喝到幾瓶汽水
無(wú)法換汽水后,剩多少空瓶敷待,喝了多少瓶汽水
相關(guān)知識(shí)點(diǎn):函數(shù)间涵,遞歸仁热,循環(huán)
遞歸實(shí)現(xiàn)
def drink_by_bottle(money, drink_water, empty_bottle, cap_num):
if money > 0:
tmp = money
drink_water = drink_water + tmp
empty_bottle = empty_bottle + tmp
cap_num = cap_num + tmp
money = 0
print('花錢購(gòu)買了{(lán)}瓶汽水榜揖,總共喝了{(lán)}瓶汽水勾哩,當(dāng)前手中剩余{}元,瓶子有{}個(gè)举哟,瓶蓋有{}個(gè)'.format(tmp, drink_water, money, empty_bottle, cap_num))
elif empty_bottle > 1:
tmp = empty_bottle // 2
# 喝了的汽水總數(shù) = 手上的空瓶子數(shù)+ 買的汽水?dāng)?shù)量
drink_water = drink_water + tmp
# 買完汽水還剩幾個(gè)蓋子
cap_num = cap_num + tmp
# 蓋子可以買幾瓶汽水
empty_bottle = tmp + empty_bottle % 2
print('用{}個(gè)空瓶換了{(lán)}瓶汽水思劳,總共喝了{(lán)}瓶汽水,當(dāng)前手中剩余{}元妨猩,瓶子有{}個(gè)潜叛,瓶蓋有{}個(gè)'.format(tmp*2, tmp, drink_water, money, empty_bottle, cap_num))
elif cap_num > 2:
tmp = cap_num // 3
drink_water = drink_water + tmp
empty_bottle = empty_bottle + tmp
cap_num = tmp + cap_num % 3
print('用{}個(gè)蓋子換了{(lán)}瓶汽水,總共喝了{(lán)}瓶汽水壶硅,當(dāng)前手中剩余{}元威兜,瓶子有{}個(gè),瓶蓋有{}個(gè)'.format(tmp*3, tmp, drink_water, money, empty_bottle, cap_num))
if empty_bottle > 1 or cap_num > 2:
drink_by_bottle(money, drink_water, empty_bottle, cap_num)
while True:
ins = input('請(qǐng)輸入金額(q退出):')
if ins.isdigit():
money1 = int(ins)
drink = 0
bottle = 0
cap = 0
drink_by_bottle(money1, drink, bottle, cap)
elif ins == 'q':
print('程序退出')
break
else:
print('請(qǐng)輸入數(shù)字庐椒,謝謝椒舵!')
循環(huán)實(shí)現(xiàn)
while True:
ins = input('請(qǐng)輸入金額(q退出):')
if ins.isdigit():
money = int(ins)
drink_water = 0
empty_bottle = 0
cap_num = 0
while money or empty_bottle > 1 or cap_num > 2:
if money > 0:
tmp = money
drink_water = drink_water + tmp
empty_bottle = empty_bottle + tmp
cap_num = cap_num + tmp
money = 0
print('花錢購(gòu)買了{(lán)}瓶汽水,總共喝了{(lán)}瓶汽水约谈,當(dāng)前手中剩余{}元笔宿,瓶子有{}個(gè),瓶蓋有{}個(gè)'.format(tmp,
drink_water,
money,
empty_bottle,
cap_num))
elif empty_bottle > 1:
tmp = empty_bottle // 2
# 喝了的汽水總數(shù) = 手上的空瓶子數(shù)+ 買的汽水?dāng)?shù)量
drink_water = drink_water + tmp
# 買完汽水還剩幾個(gè)蓋子
cap_num = cap_num + tmp
# 蓋子可以買幾瓶汽水
empty_bottle = tmp + empty_bottle % 2
print('用{}個(gè)空瓶換了{(lán)}瓶汽水棱诱,總共喝了{(lán)}瓶汽水泼橘,當(dāng)前手中剩余{}元,瓶子有{}個(gè)迈勋,瓶蓋有{}個(gè)'.format(tmp * 2,
tmp,
drink_water,
money,
empty_bottle,
cap_num))
elif cap_num > 2:
tmp = cap_num // 3
drink_water = drink_water + tmp
empty_bottle = empty_bottle + tmp
cap_num = tmp + cap_num % 3
print('用{}個(gè)蓋子換了{(lán)}瓶汽水炬灭,總共喝了{(lán)}瓶汽水,當(dāng)前手中剩余{}元靡菇,瓶子有{}個(gè)担败,瓶蓋有{}個(gè)'.format(tmp * 3,
tmp,
drink_water,
money,
empty_bottle,
cap_num))
elif ins == 'q':
print('程序退出')
break
else:
print('請(qǐng)輸入數(shù)字,謝謝镰官!')
輸出
請(qǐng)輸入金額(q退出):20
花錢購(gòu)買了20瓶汽水提前,總共喝了20瓶汽水,當(dāng)前手中剩余0元泳唠,瓶子有20個(gè)狈网,瓶蓋有20個(gè)
用20個(gè)空瓶換了10瓶汽水,總共喝了30瓶汽水笨腥,當(dāng)前手中剩余0元拓哺,瓶子有10個(gè),瓶蓋有30個(gè)
用10個(gè)空瓶換了5瓶汽水脖母,總共喝了35瓶汽水士鸥,當(dāng)前手中剩余0元,瓶子有5個(gè)谆级,瓶蓋有35個(gè)
用4個(gè)空瓶換了2瓶汽水烤礁,總共喝了37瓶汽水讼积,當(dāng)前手中剩余0元,瓶子有3個(gè)脚仔,瓶蓋有37個(gè)
用2個(gè)空瓶換了1瓶汽水勤众,總共喝了38瓶汽水,當(dāng)前手中剩余0元鲤脏,瓶子有2個(gè)们颜,瓶蓋有38個(gè)
用2個(gè)空瓶換了1瓶汽水,總共喝了39瓶汽水猎醇,當(dāng)前手中剩余0元窥突,瓶子有1個(gè),瓶蓋有39個(gè)
用39個(gè)蓋子換了13瓶汽水硫嘶,總共喝了52瓶汽水波岛,當(dāng)前手中剩余0元,瓶子有14個(gè)音半,瓶蓋有13個(gè)
用14個(gè)空瓶換了7瓶汽水则拷,總共喝了59瓶汽水,當(dāng)前手中剩余0元曹鸠,瓶子有7個(gè)煌茬,瓶蓋有20個(gè)
用6個(gè)空瓶換了3瓶汽水,總共喝了62瓶汽水彻桃,當(dāng)前手中剩余0元坛善,瓶子有4個(gè),瓶蓋有23個(gè)
用4個(gè)空瓶換了2瓶汽水邻眷,總共喝了64瓶汽水眠屎,當(dāng)前手中剩余0元,瓶子有2個(gè)肆饶,瓶蓋有25個(gè)
用2個(gè)空瓶換了1瓶汽水改衩,總共喝了65瓶汽水,當(dāng)前手中剩余0元驯镊,瓶子有1個(gè)葫督,瓶蓋有26個(gè)
用24個(gè)蓋子換了8瓶汽水,總共喝了73瓶汽水板惑,當(dāng)前手中剩余0元橄镜,瓶子有9個(gè),瓶蓋有10個(gè)
用8個(gè)空瓶換了4瓶汽水冯乘,總共喝了77瓶汽水洽胶,當(dāng)前手中剩余0元,瓶子有5個(gè)裆馒,瓶蓋有14個(gè)
用4個(gè)空瓶換了2瓶汽水姊氓,總共喝了79瓶汽水丐怯,當(dāng)前手中剩余0元,瓶子有3個(gè)他膳,瓶蓋有16個(gè)
用2個(gè)空瓶換了1瓶汽水响逢,總共喝了80瓶汽水绒窑,當(dāng)前手中剩余0元棕孙,瓶子有2個(gè),瓶蓋有17個(gè)
用2個(gè)空瓶換了1瓶汽水些膨,總共喝了81瓶汽水蟀俊,當(dāng)前手中剩余0元,瓶子有1個(gè)订雾,瓶蓋有18個(gè)
用18個(gè)蓋子換了6瓶汽水肢预,總共喝了87瓶汽水,當(dāng)前手中剩余0元洼哎,瓶子有7個(gè)烫映,瓶蓋有6個(gè)
用6個(gè)空瓶換了3瓶汽水,總共喝了90瓶汽水噩峦,當(dāng)前手中剩余0元锭沟,瓶子有4個(gè),瓶蓋有9個(gè)
用4個(gè)空瓶換了2瓶汽水识补,總共喝了92瓶汽水族淮,當(dāng)前手中剩余0元,瓶子有2個(gè)凭涂,瓶蓋有11個(gè)
用2個(gè)空瓶換了1瓶汽水祝辣,總共喝了93瓶汽水,當(dāng)前手中剩余0元切油,瓶子有1個(gè)蝙斜,瓶蓋有12個(gè)
用12個(gè)蓋子換了4瓶汽水,總共喝了97瓶汽水澎胡,當(dāng)前手中剩余0元乍炉,瓶子有5個(gè),瓶蓋有4個(gè)
用4個(gè)空瓶換了2瓶汽水滤馍,總共喝了99瓶汽水岛琼,當(dāng)前手中剩余0元,瓶子有3個(gè)巢株,瓶蓋有6個(gè)
用2個(gè)空瓶換了1瓶汽水槐瑞,總共喝了100瓶汽水,當(dāng)前手中剩余0元阁苞,瓶子有2個(gè)困檩,瓶蓋有7個(gè)
用2個(gè)空瓶換了1瓶汽水祠挫,總共喝了101瓶汽水,當(dāng)前手中剩余0元悼沿,瓶子有1個(gè)等舔,瓶蓋有8個(gè)
用6個(gè)蓋子換了2瓶汽水,總共喝了103瓶汽水糟趾,當(dāng)前手中剩余0元慌植,瓶子有3個(gè),瓶蓋有4個(gè)
用2個(gè)空瓶換了1瓶汽水义郑,總共喝了104瓶汽水蝶柿,當(dāng)前手中剩余0元,瓶子有2個(gè)非驮,瓶蓋有5個(gè)
用2個(gè)空瓶換了1瓶汽水交汤,總共喝了105瓶汽水,當(dāng)前手中剩余0元劫笙,瓶子有1個(gè)芙扎,瓶蓋有6個(gè)
用6個(gè)蓋子換了2瓶汽水,總共喝了107瓶汽水填大,當(dāng)前手中剩余0元戒洼,瓶子有3個(gè),瓶蓋有2個(gè)
用2個(gè)空瓶換了1瓶汽水栋盹,總共喝了108瓶汽水施逾,當(dāng)前手中剩余0元,瓶子有2個(gè)例获,瓶蓋有3個(gè)
用2個(gè)空瓶換了1瓶汽水汉额,總共喝了109瓶汽水,當(dāng)前手中剩余0元榨汤,瓶子有1個(gè)蠕搜,瓶蓋有4個(gè)
用3個(gè)蓋子換了1瓶汽水,總共喝了110瓶汽水收壕,當(dāng)前手中剩余0元妓灌,瓶子有2個(gè),瓶蓋有2個(gè)
用2個(gè)空瓶換了1瓶汽水蜜宪,總共喝了111瓶汽水虫埂,當(dāng)前手中剩余0元,瓶子有1個(gè)圃验,瓶蓋有3個(gè)
用3個(gè)蓋子換了1瓶汽水掉伏,總共喝了112瓶汽水,當(dāng)前手中剩余0元,瓶子有2個(gè)斧散,瓶蓋有1個(gè)
用2個(gè)空瓶換了1瓶汽水供常,總共喝了113瓶汽水,當(dāng)前手中剩余0元鸡捐,瓶子有1個(gè)栈暇,瓶蓋有2個(gè)