Python中如何将循环每次迭代的结果相乘来实现阶乘计算?
阶乘循环实现的代码修正方案
错误原因
你现有代码的核心问题是没有设置累乘结果的存储变量,每次循环仅计算并打印了单次的k*(k-t)运算结果,没有把每次迭代的数值累积相乘,因此无法得到最终的阶乘值。
修正代码
for循环实现(写法更简洁)
def myfactorial(k): result = 1 # 遍历1到k的所有整数,依次累乘 for num in range(1, k+1): result *= num return result # 测试计算7的阶乘 print(myfactorial(7))
保留while循环的实现
如果你想沿用原来的while循环写法,可以改成如下版本:
def myfactorial(k): t = 1 result = 1 while t <= k: result *= t t += 1 return result print(myfactorial(7))
效果验证
上述代码运行后会输出5040,也就是7的阶乘的正确结果。
内容的提问来源于stack exchange,提问作者noughtsamar
相关产品推荐
相关产品推荐

