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

Python打印指数阶乘序列单个加数的代码结果异常修正咨询

代码问题定位与修正方案

原有代码的核心错误

  • 冗余嵌套了无意义的内层循环:原本只需要单层循环就能完成逐次计算的逻辑,额外加了for i in range(x,n+1)的内层遍历,导致每算一个阶乘值,就会重复循环计算从x到n的所有幂次结果,直接造成输出数值数量严重超标、内容完全错位。
  • 项的计算逻辑错配:按照序列规则,第j项的固定表达式为x^j / j!,不需要额外拆分分子、分母为两层独立循环计算,原代码把分子的幂次遍历和分母的阶乘计算强行嵌套,根本没有把同项下的分子和阶乘绑定,最终算出来的数值完全不符合序列定义。
  • 输出精度不匹配:原代码直接输出浮点数的完整精度,没有对齐目标输出的5位小数格式,和示例要求的展示效果不一致。

具体调整操作

  1. 直接删除多余的内层for循环,保留累计计算阶乘的外层单层循环即可。
  2. 循环到第j轮时,直接使用当前j值计算分子x**j,除以本轮已经累计完成的j阶乘值,得到当前独立加数。
  3. 按目标输出的精度要求,将每一项的数值格式化为保留5位小数,和示例展示效果对齐。

调整后可直接运行的代码

x = int(input("Please enter the base number: "))
n = int(input("Please enter the number of terms: "))
factorial = 1
for j in range(1, n + 1):
    factorial = factorial * j
    current_term = (x ** j) / factorial
    # 按5位小数精度输出,每项后拼接+号
    print(f"{current_term:.5f}", end='+')
# 循环结束后输出换行,避免后续终端提示和输出内容挤在同一行
print()

运行验证效果

输入X=2、N=5时,逐轮计算的结果为:

  • 第1项:2^1 / 1! = 2.0
  • 第2项:2^2 / 2! = 2.0
  • 第3项:2^3 / 3! ≈ 1.33333
  • 第4项:2^4 / 4! ≈ 0.66667
  • 第5项:2^5 /5! ≈0.26667
    最终拼接输出完全匹配目标格式:2.0+2.0+1.33333+0.66667+0.26667+

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 15:45:01