如何解决阶乘过程中while循环的问题>

时间:2019-04-19 22:14:00

标签: python factorial

我尝试使用这些代码定义阶乘过程,但是得到的结果是n ^ 2,而不是n *(n-1)*(n-2)...... 1。看来i n仅在i = n时实现一次。我很困惑,这是什么问题?

def factorial(n):           
    i = 1
    while n >=i:
        result = i * n
        i = i + 1
    return result

2 个答案:

答案 0 :(得分:0)

您应该继续在point1上汇总操作:

result

使def factorial(n): result = 1 while n > 1: result *= n n -= 1 return result 返回:factorial(4)

答案 1 :(得分:0)

如果要更改逻辑,请参阅@blhsing'答案。

实现阶乘的更简单方法如下:

def factorial(n):
    if not n:
        return 1
    else:
        return n * factorial(n-1)

请记住,math.factorial也存在。这是您不需要自己构建功能的最佳解决方案。