您好我是一名介绍编程的学生,我在完成一项任务时遇到了麻烦。我们要做的是建立一个名为“因子(n)”的功能。和' n'任何数字。结果应该是到第n个数字的阶乘数序列。例如,如果我输入因子(5),它应该打印120 24 6 2 1.这是我到目前为止尝试的,这个问题是它只适用于4,它应该适用于任何数字。
def Factorial(n):
a = 1
while a <= n:
if n <= 2 :
num = n
else:
num = n * ((n-2)*(n-1))
print(num)
n = n - 1
Factorial(4)
如果我把因子(5)放在60 24 6 2 1时它应该是120而不是60.
答案 0 :(得分:0)
我不确定你的编程课程有多远,但历史上一个因子函数是向学生介绍递归的一种方法,但它没有必要解决这个问题。
作为一项任务,我不想在这里泄露答案。但看着这条线
num = n * ((n-2)*(n-1))
如果插入n = 5,最终会得到5 * 4 * 3 = 60,这就是为什么你的功能在n = 4(4 * 3 * 2,其中缺失的1不影响结果)。
相反,你希望你的函数取n并将它乘以从1到(n-1)的所有内容并打印出来。另外不要忘记考虑Factorial(0)= 1
的情况