0
我已經寫在Python 2.7功能caluclates給定數量的數字和:Python 2.7中迭代函數的遞歸函數如何實現?
def dig_sum(n):
s = 0
while n:
s = s + n % 10
n = n/10
return s
現在試圖改寫它作爲一個遞歸函數:
def dig_sum(n):
s = 0
if n != 0:
s = n % 10
s += s
return dig_sum(n/10)
return s
什麼是錯的我遞歸函數?做這些功能時最好的做法是什麼? 在此先感謝!
在就地除了S上不會傳播到外部功能 - 你總是會返回0 – mdurant 2014-09-24 19:35:26
你已經爲你的問題得到了一些很好的答案!但是在將來,當你開始提出更復雜的問題時,如果你描述問題更好,你會得到更好的結果。你只是問「我的功能有什麼問題?」而不是描述你得到的任何錯誤,異常或不好的結果。嘗試始終在您的問題中包含這些細節。 – skrrgwasme 2014-09-24 19:38:54
請注意,如果您在1000位以上的數字上運行此操作,它會崩潰。 Python中的遞歸通常是要避免的,除非你的代碼在沒有它的情況下顯得更加複雜(否則它只是針對CS wonks)。 – 2014-09-24 20:04:22