我试图写,将返回正整数的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