好吧,讓我開始說是的這是作業。但我有答案(直到它運作起來)我的問題更多的是「如何」,我有老師多次解釋它(網上課),但我只是沒有得到它,希望有人在這裏更好以我想到的方式解釋事物。** recurPower **我知道了,但我不明白它
這裏是分配:
寫一個函數recurPower(base, exp)
它通過遞歸調用自身來解決同一問題的一個較小的版本,然後通過base
結果乘以解決最初的問題計算base**exp
。
此功能應取兩個值 - base
可以是浮點數或整數; exp
將是整數≥0。它應該返回一個數值。您的代碼必須是遞歸的 - 不允許使用**
運算符或循環結構。好吧,經過幾次試錯嘗試(我的意思是幾個小時的瘋狂改變)後,我想出了正確的代碼,它解決了正確的答案,但我不明白如何。
下面是代碼:
def recurPower(base, exp):
'''
base: int or float.
exp: int >= 0
returns: int or float, base^exp
'''
if exp <= 0:
return 1
return base * recurPower(base, exp - 1)
第一件事就是EXP = 0,則返回1部分....我不明白爲什麼事情會回來跟1。二是,如果最後一部分的代碼,如果沒有循環,那麼exp會下降1?
你明白'recurPower(base,exp - 1)'的含義嗎? – SLaks
那麼我得到那個基地* recurPower(基地,exp - 1)將採取基地並乘以它的基地和減少exp 1,但我不明白它是如何迴環再次減少exp,但我是有點看到,現在在下面的答案。 – Aoxx
它是edx.org上的「6.00.1x計算機科學與編程入門」:) – furas