Project Euler第11题Python实现问题:垂直方向迭代输出重复异常排查
Project Euler 第11题:垂直方向遍历乘积计算卡壳求助
我最近在啃Project Euler第11题,计划先实现4个不同遍历方向的循环,第一个先搞定垂直方向的逻辑:从20×20网格的左上角开始,先计算首行对应位置连续4个数值的乘积,然后下移一行重复同样的乘法操作,完成16次迭代后停止。
为了验证功能是否正确,我需要打印所有迭代结果,确认能生成360个唯一数值;后续还打算修改代码:初始设置figure=0,每次迭代时把生成的乘积和当前figure对比,要是乘积更大就更新figure的值。
但现在代码跑起来后,输出结果是同一组20个数值重复16次,这可把我难住了。我想不参考现有答案,自己搞定这个问题,以下是我的代码:
twenmat = [20*20 matrix] # 此处为实际的20×20数值矩阵 newlist = [] figure = 0 for items in twenmat: for x in range(0,20): y = 0 newlist.append(twenmat[0+y][x]*twenmat[1+y][x]*twenmat[2+y][x]*twenmat[3+y][x]) y = y + 1 if y == 16: break print(newlist)
内容的提问来源于stack exchange,提问作者JoshZ
相关产品推荐
相关产品推荐

