我有一个作业,要求我使用 Python 递归函数以以下形式输出用户输入的数字的因子:
输入一个整数:6 <-- 用户输入
6的因数是:
1
2
3
6
我现在感觉有点迷失,在过去的两个小时里我尝试自己做所有事情,但就是无法到达那里。如果可能的话,我宁愿被推向正确的方向,而不是像我想学习的那样显示我的代码需要更改的地方
下面是我的代码:
def NumFactors(x):
for i in range(1, x + 1):
if x == 1:
return 1
if x % i == 0:
return i
return NumFactors(x-1)
x = int(input('Enter an integer: '))
print('The factors of', x, 'are: ', NumFactors(x))
最佳答案
在您的代码中,问题是方法内的 for 循环。循环从 1 开始,转到第一个 if 条件,一切都在那里终止。这就是为什么它只打印 1 作为输出,这是您自己的代码的稍微修改的版本。这应该有帮助。如果您有任何疑问,请随时询问。
def factors(x):
if x == 1:
print(1 ,end =" ")
elif num % x == 0:
factors(x-1)
print(x, end =" ")
else:
factors(x-1)
x = num = int(input('Enter an integer: '))
print('The factors of', x, 'are: ',end =" ")
factors(x)
关于python - 使用Python递归函数求一个数的因数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54830616/