You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写正确的n的阶乘计算代码?为何运行结果恒为0?

阶乘代码输出0的问题修复

你的代码输出0的原因是range(n)生成的序列是从0到n-1的整数,只要n≥1,循环里就会执行p *= 0,一旦p变成0,后续的乘法操作都不会改变结果,最终输出0。

修复后的循环实现

调整range的范围,从1开始到n结束,这样就不会乘到0了:

n = int(input("enter a number."))
p = 1
for i in range(1, n + 1):
    p *= i
print(p)

这个代码能正确处理n=0的情况(0的阶乘是1),因为当n=0时,range(1, 0+1)是空序列,循环不会执行,p保持初始值1,符合阶乘定义。

更简洁的实现方式

Python的math模块内置了阶乘函数,直接调用更高效且严谨,还会自动处理负数输入的错误:

import math
n = int(input("enter a number."))
print(math.factorial(n))

内容的提问来源于stack exchange,提问作者Rupam Ghosh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 16:00:17