循环时的因子序列

时间:2018-03-16 22:05:00

标签: python python-3.x

您好我是一名介绍编程的学生,我在完成一项任务时遇到了麻烦。我们要做的是建立一个名为“因子(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.

1 个答案:

答案 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

的情况