You need to enable JavaScript to run this app. Project Euler Self powers自幂求和问题:代码结果错误排查
优惠活动
大模型
产品
解决方案
定价
更多

Project Euler Self powers自幂求和问题:代码结果错误排查

错误核心要点
  • 循环范围不符合题干要求:range(1001)生成的是0~1000的整数序列,题目要求从1^1开始累加,多余计算了0**0(Python中该值为1),属于逻辑偏差。
  • *核心遗漏:未对计算结果取模1010*。题目仅要求输出求和结果的最后十位数字,你直接输出完整大整数不会自动截断后十位;同时直接计算完整的`x**x`(例如10001000是3001位的超大数)会产生无意义的性能开销,利用模运算性质可以在每步计算时取模,完全不影响最终后十位的结果。
计算依据

模运算满足以下性质,不会影响最终后十位结果:

(a + b) % MOD = ((a % MOD) + (b % MOD)) % MOD
幂运算可直接取模:x^x % MOD无需算出完整的x^x值即可计算
本题中MOD = 10 ** 10,对运算结果取该值的模,得到的就是最后十位数值。

修正后代码
MOD = 10 ** 10
total = 0
# 循环范围改为1~1000符合题干要求
for x in range(1, 1001):
    # 直接用带模的幂运算,效率更高无超大中间值
    total = (total + pow(x, x, MOD)) % MOD
# 补前导零保证输出固定为10位
print(f"{total:010d}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 12:36:09