我試圖寫,將返回正整數的Python - 遞歸的方式返回一個整數的除數
除數(12)=> [1,2的除數的列表的功能列表,3,4,6,12]
我做了一個for循環,然後試圖做一個遞歸,但我無法弄清楚如何做到這一點,並沒有發現它的任何在線的例子任何語言。
def divisors(n,l=[]):
b=1
if n < 1:
return l
if n == 1:
我以爲使用l = []會比yield更好,但無論如何,我無法獲得任何它。
編輯: 使用@vks代碼,我寫了下面的:
def fun(n, l=[],divisor=1):
if n % divisor == 0:
l.append(divisor)
if divisor == n:
return None
fun(n, l, divisor+1)
return l
1.請縮進代碼。 2.我沒有看到任何遞歸。請發佈您的完整代碼,哪些不起作用。 – Carcigenicate
嗯,我無法弄清楚如何做遞歸,我試過的任何東西都沒有任何用處。 – tilifoze
寫出你的循環函數,然後在循環結束時你變異了一些變量(如除數列表),然後遞歸併傳遞列表。你也可能需要函數的第三個參數來跟蹤當前的分母,每遞增一次就會增加一個分母。 – Carcigenicate