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

求助:将棋盘麦粒问题的单循环代码改写为嵌套双循环

棋盘麦粒问题:嵌套双循环实现方案

你已经用单循环完成了棋盘麦粒的计算,改成嵌套双循环其实很直接——外层循环遍历每一行,内层循环遍历当前行的每一列,同时沿用单循环里的麦粒数累加逻辑即可。

核心思路

单循环里的i是所有格子的线性索引(从0到n²-1),对应到双循环中,就是**(行号-1)*每行格子数n + (列号-1)**。不过不用特意计算这个索引,直接保持grains的递增节奏:每遍历一个格子,就把当前麦粒数加到总数里,然后麦粒数翻倍,和单循环的逻辑完全对齐。

嵌套双循环代码实现

grains = 1
total = 0

n = int(input("How many squares are on one side of your chessboard?: "))

# 外层循环遍历行,从1到n
for row in range(1, n+1):
    # 内层循环遍历当前行的列,从1到n
    for col in range(1, n+1):
        total += grains
        print("row", row, "column", col, "has", grains, "grains of wheat.")
        grains *= 2

print("There are", total, "grains of wheat.")

和单循环的对应关系

对比你提供的单循环代码:

  • 单循环里的int(i/n)+1就是双循环的row
  • 单循环里的(i%n)+1就是双循环的col
  • grains的更新和总数累加逻辑完全一致,只是把线性遍历拆成了行和列的嵌套遍历

这样输出的格式和内容会和你原来的单循环版本完全相同,同时满足嵌套双循环的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 14:55:22