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

如何编写求n的阶乘的正确代码?现有阶乘代码输出始终为0

阶乘计算问题的修复方案

问题根源

你的代码中使用了range(n),这个函数生成的序列是0, 1, 2, ..., n-1。当输入的n≥2时,循环过程中会乘到0,直接导致最终结果变为0,这和阶乘的定义(n! = 1×2×…×n)不符。

正确实现代码

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

解决方法

  • 调整循环范围:把range(n)替换为range(1, n+1),让循环变量i从1遍历到n,完全匹配阶乘的乘法逻辑。
  • 兼容边界场景:修正后的代码自然支持n=0或n=1的情况(0!和1!的结果都是1),无需额外判断。

内容的提问来源于stack exchange,提问作者Lucky Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 01:45:30