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

问题描述

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

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

标签: pythonfactorial

解决方案


您应该继续汇总操作result

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

这样factorial(4)返回:24


推荐阅读