也許你們中的一些人已經嘗試解決codewars上的「持續性bugger」任務。 因此,這裏是輪到我了:)python:遞歸函數計數器。持久性問題
def persistence(num):
multi = 1
while num:
multi *= num % 10
num /= 10
global count
count += 1
if(multi >= 10):
persistence(multi)
else:
return 0
return count
count = 0
print(persistence(39))
#print(persistence(25))
它給了我正確的迭代結果和1次嘗試的成功的結果。 (persistence(39) => 3 # Because 3*9 = 27, 2*7 = 14, 1*4=4)
但由於使用全局變量,我無法運行它超過1次。如何處理這個?我怎樣才能創建計數器,並在這個時候遞歸地使用這個函數?
我不知道你在做什麼功能是幹什麼的,但我猜你會想'返回的持久性(多)'而不是僅僅調用它。此外,如果您需要維護計數,則可以將其作爲第二個參數傳遞,而不是調用全局。 'def persistence(num,count):' – Hoopdady
既然我不熟悉那個「任務」,你能告訴我們你想完成什麼嗎? – wheaties
這是一個問題:編寫一個函數,持久性,它接受一個正參數num並返回它的乘法持久性,這是你必須在num中乘以數字的次數,直到達到一個數字。 「持久性(39)=> 3」,「持久性(25)=> 2」。所以我應該返回'count'。在我的情況下,我使用全局變量。這就是爲什麼計數器總是增加,我得到第二次運行5(3 + 2)而不是2。 – ascentman