買汽水游戲 - python

一瓶汽水一塊錢,兩個(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è)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市箍镜,隨后出現(xiàn)的幾起案子源祈,更是在濱河造成了極大的恐慌,老刑警劉巖鹿寨,帶你破解...
    沈念sama閱讀 221,273評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件新博,死亡現(xiàn)場(chǎng)離奇詭異薪夕,居然都是意外死亡脚草,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門原献,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)馏慨,“玉大人,你說我怎么就攤上這事姑隅⌒戳ィ” “怎么了?”我有些...
    開封第一講書人閱讀 167,709評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵讲仰,是天一觀的道長(zhǎng)慕趴。 經(jīng)常有香客問我,道長(zhǎng)鄙陡,這世上最難降的妖魔是什么冕房? 我笑而不...
    開封第一講書人閱讀 59,520評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮趁矾,結(jié)果婚禮上耙册,老公的妹妹穿的比我還像新娘。我一直安慰自己毫捣,他們只是感情好详拙,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,515評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蔓同,像睡著了一般饶辙。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上斑粱,一...
    開封第一講書人閱讀 52,158評(píng)論 1 308
  • 那天弃揽,我揣著相機(jī)與錄音,去河邊找鬼。 笑死蹋宦,一個(gè)胖子當(dāng)著我的面吹牛披粟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播冷冗,決...
    沈念sama閱讀 40,755評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼守屉,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了蒿辙?” 一聲冷哼從身側(cè)響起拇泛,我...
    開封第一講書人閱讀 39,660評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎思灌,沒想到半個(gè)月后俺叭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,203評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡泰偿,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,287評(píng)論 3 340
  • 正文 我和宋清朗相戀三年熄守,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片耗跛。...
    茶點(diǎn)故事閱讀 40,427評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡裕照,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出调塌,到底是詐尸還是另有隱情晋南,我是刑警寧澤,帶...
    沈念sama閱讀 36,122評(píng)論 5 349
  • 正文 年R本政府宣布羔砾,位于F島的核電站负间,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏姜凄。R本人自食惡果不足惜政溃,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,801評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望檀葛。 院中可真熱鬧玩祟,春花似錦、人聲如沸屿聋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)润讥。三九已至转锈,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間楚殿,已是汗流浹背撮慨。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人砌溺。 一個(gè)月前我還...
    沈念sama閱讀 48,808評(píng)論 3 376
  • 正文 我出身青樓影涉,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親规伐。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蟹倾,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,440評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 歡迎關(guān)注【笙晨閑談】微信公眾號(hào),閑談猖闪、干貨一應(yīng)俱全鲜棠,只要你關(guān)注,就會(huì)有故事~ PS:寫 在 前 面 Hell...
    梔陌笙晨閱讀 411評(píng)論 0 4
  • 假如有這么一個(gè)問題培慌,1瓶汽水1塊錢豁陆,2個(gè)空瓶可以兌換一瓶汽水,問n塊錢可以兌換多少瓶汽水吵护? 考慮整個(gè)過程就是用空瓶...
    mysimplebook閱讀 1,103評(píng)論 0 0
  • [編程題] 汽水瓶 有這樣一道智力題:“某商店規(guī)定:三個(gè)空汽水瓶可以換一瓶汽水盒音。小張手上有十個(gè)空汽水瓶,她最多可以...
    icecrea閱讀 819評(píng)論 0 6
  • 【1】假設(shè)有一個(gè)池塘何址,里面有無(wú)窮多的水±锬妫現(xiàn)有2個(gè)空水壺进胯,容積分別為5升和6升用爪。問題是如何只用這2個(gè)水壺從池塘里取得...
    sidney_c閱讀 1,208評(píng)論 0 9
  • 經(jīng)常有這種題,你手里有多少錢胁镐,喝飲料多少錢一瓶偎血,n個(gè)空瓶子可以換一瓶飲料或者m個(gè)瓶蓋也可以換一瓶飲料。這種題盯漂,使用...
    Y一條柴閱讀 484評(píng)論 0 1