You need to enable JavaScript to run this app. Python实现Project Euler第11题结果错误,求排查代码问题
优惠活动
大模型
产品
解决方案
定价
更多

Python实现Project Euler第11题结果错误,求排查代码问题

代码错误定位
  • 错误1:垂直向上方向的边界判断逻辑完全错配
    你计算向上连续四数乘积时,判断条件和实际访问的索引不匹配:
    实际取数用的是行索引i-1、i-2、i-3,本该检查这些行索引是否大于等于0(即满足i >=3),但你错误地把列索引j-1、j-2、j-3的边界判断写进了条件里。
    这会直接导致计算结果无效:行号小于3的位置本该越界无法计算,只要列号>=3就会触发逻辑,而Python的负列表索引会让你取到网格底部的行元素,根本不是向上的连续数;同时真正需要计算的行号>=3、列号<3的位置,反而会被错误的列边界判断卡住。
  • 错误2:漏算一组斜向对角线方向
    你目前仅计算了行号、列号同步增减的\型对角线(方向向量(1,1)和反向遍历的(-1,-1)),完全没有计算行号递增、列号递减的/型对角线(方向向量(1,-1))。题目给出的正确最大乘积70600674就出现在这个漏算的方向上,自然得不到正确结果。

修正操作:

  1. 把向上方向的判断条件从检查列边界改为直接判断i >=3,匹配实际取数的行索引要求;
  2. 补充/型对角线的计算逻辑:循环遍历每个(i,j)位置时,增加判断——若i+3 <20且j-3 >=0,则计算grid[i][j] * grid[i+1][j-1] * grid[i+2][j-2] * grid[i+3][j-3]的乘积,和当前最大值比较更新。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.06 21:57:07