牛客網 汽水瓶 遞迴方法

2021-10-23 18:09:26 字數 774 閱讀 5465

題目描述

有這樣一道智力題:「某商店規定:三個空汽水瓶可以換一瓶汽水。小張手上有十個空汽水瓶,她最多可以換多少瓶汽水喝?」答案是5瓶,方法如下:先用9個空瓶子換3瓶汽水,喝掉3瓶滿的,喝完以後4個空瓶子,用3個再換一瓶,喝掉這瓶滿的,這時候剩2個空瓶子。然後你讓老闆先借給你一瓶汽水,喝掉這瓶滿的,喝完以後用3個空瓶子換一瓶滿的還給老闆。如果小張手上有n個空汽水瓶,最多可以換多少瓶汽水喝?

輸入描述:

輸入檔案最多包含10組測試資料,每個資料佔一行,僅包含乙個正整數n(1<=n<=100),表示小張手上的空汽水瓶數。n=0表示輸入結束,你的程式不應當處理這一行。

輸出描述:

對於每組測試資料,輸出一行,表示最多可以喝的汽水瓶數。如果一瓶也喝不到,輸出0。

def

func

(n):

if n<=1:

return

0if n==2:

return

1else

:return n//

3+func(n//

3+n%3)

while

true

:try

: num=

int(

input()

.strip())

print

(func(num)

)except

:break

通過遞迴關係:func(n)=n//3+func(n//3+n%3) ,

這樣很容易就得到答案了。

牛客網 汽水瓶

題目描述 有這樣一道智力題 某商店規定 三個空汽水瓶可以換一瓶汽水。小張手上有十個空汽水瓶,她最多可以換 多少瓶汽水喝?答案是5瓶,方法如下 先用9個空瓶子換3瓶汽水,喝掉3瓶滿的,喝完以後4個空瓶子,用3 個再換一瓶,喝掉這瓶滿的,這時候剩2個空瓶子。然後你讓老闆先借給你一瓶汽水,喝掉這瓶滿的,喝...

1329 汽水瓶(這就是遞迴)

題目描述 有這樣一道智力題 某商店規定 三個空汽水瓶可以換一瓶汽水。小張手上有十個空汽水瓶,她最多可以換多少瓶汽水喝?答案是5瓶,方法如下 先用9個空瓶子換3瓶汽水,喝掉3瓶滿的,喝完以後4個空瓶子,用3個再換一瓶,喝掉這瓶滿的,這時候剩2個空瓶子。然後你讓老闆先借給你一瓶汽水,喝掉這瓶滿的,喝完以...

牛客網演算法之遞迴

1.遞迴本質 遞迴很常見應用很廣,常常看到的遞迴 非常簡潔,但是實現強大。遞迴的表現形式是函式自己呼叫自己,有點繞,所以接下用例子講述下計算機怎麼實現遞迴的。最簡單的例子,求乙個陣列的最大值。這個基本方法是不用遞迴的,可以遍歷一遍,但是強制用遞迴實現。思路 把陣列切一半,左半部分求最大值,右半部分求...