我尝试使用这些代码定义阶乘过程,但是得到的结果是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
答案 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
也存在。这是您不需要自己构建功能的最佳解决方案。