當一個男人爬上一個斜坡時,他會衝出來,直到他耗盡能量而不是停下來休息一下,該函數會返回他爬上斜坡的次數,直到他爬到頂部。每次他再次衝擊時,他都輸掉5%。但是,當我運行這個程序時,它需要很長時間,並且不會返回任何內容。它應該返回19如何減少5%的變量?
def num_rushes(slope_height, rush_height_gain, back_sliding):
current_height = 0
rushes = 0
while current_height < slope_height:
current_height += rush_height_gain
if current_height < slope_height:
current_height -= back_sliding
rushes += 1
rush_height_gain = rush_height_gain * 0.95
return rushes
ans = num_rushes(100, 15, 7)
print(ans)
我會推薦向循環中添加一些打印語句,以查看每次迭代後值的變化情況,並瞭解發生了什麼問題。你沒有對'back_sliding'變量做任何事情,所以你可能忘了做一些問題。 –
你確定這是你正在運行的代碼嗎?我複製並粘貼它,幾乎立即得到8作爲輸出。 – GreenMatt
當我在Python 3.5.3中運行它時,它非常快速地結束並打印'8'。當然,在我運行之前我已經修好了縮進。你真的有每條線前面的所有空間嗎? –