瓶蓋換可樂問題非迴圈寫法

2021-09-27 17:00:20 字數 336 閱讀 3638

假設有x瓶可樂,a個蓋子可以換一瓶可樂。問最後能換多少瓶可樂。

a個蓋子換一瓶可樂,可以簡化成:a-1個蓋子換一瓶不帶蓋子的可樂。那麼初始有x個蓋子,不就直接能換x/(a-1)瓶可樂嗎?但是注意到一點,假設

x%(a-1) == 0,最後乙個(a-1)不能換乙個沒蓋子的可樂,需要a個蓋子才能換乙個沒蓋子的可樂。因為這個交換本質是」透支的「,只有所剩餘的蓋子數大於等於a的時候才能發生這樣的交換,所有最後一次交換至少剩下乙個蓋子,所以最後乙個蓋子本質上沒有用。

那麼答案就是x + (x - 1) / (a - 1)。

你用不等式也可以得到

(ans - x) * a <= t - 1.

換瓶蓋問題

問題 你有k瓶可樂,兌換規則為每a個瓶蓋可以換一瓶可樂,問總共可以和多少瓶可樂?方法一 數學方法 a個瓶蓋換一瓶可樂 相當於可以用a 1個瓶蓋,兌換一瓶無蓋的可樂 例如a為3的時候,當有 3 1 個瓶蓋的時候,可以向商家 借 乙個瓶蓋湊齊3個滿足了規則換來一瓶可樂,然後將瓶蓋還給商家。那麼結果是不是...

瓶子瓶蓋換酒問題

兩塊錢一瓶啤酒,四個蓋子可以換一瓶啤酒。2個瓶子可以換一瓶啤酒。問 如果手上有20塊錢,一共喝了多少瓶啤酒?拿所有的瓶子去換酒,更新瓶蓋數 更新瓶子數 更新總數 然後瓶蓋能換酒就一直換 更新瓶子數 更新瓶蓋數 更新總數class wine system.out.println result 把酒喝完...

可樂和可樂瓶問題

3個可樂瓶可以換一瓶可樂,現在有364瓶可樂,問一共可以喝多少平可樂,剩下幾個空瓶存在兩種思路,遞迴和while迴圈 1.遞迴 注意 使用遞迴需要注意,一次操作贏嚴格限制只執行該輪操作 static void main string args static int colanumber int co...