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

函数未输出正确最大值及对应i、j值问题求助

问题分析与解决

你的代码存在三个核心问题,导致无法得到正确结果:

  • 提前返回:在第一次满足z > maxi时就直接return i,j,循环只执行了一次(i=1,j=1)就终止,没有遍历所有可能的i和j组合。
  • 手动修改循环变量:for循环会自动迭代range中的值,手动执行i +=1和j +=1会跳过部分循环元素,完全没必要。
  • 执行顺序错误:先打印了初始值为0的maxi,再调用函数计算最大值,导致打印的maxi不是最终结果。

修正后的代码

maxi = 0
best_i = 0
best_j = 0

def find_max():
    global maxi, best_i, best_j
    for i in range(1, 5):
        for j in range(1, 5):
            z = i + j
            if z > maxi:
                maxi = z
                best_i = i
                best_j = j
    return best_i, best_j

# 先调用函数计算最大值,再打印结果
x, y = find_max()
print("Maximum: {}".format(maxi))
print("i at max:", x)
print("j at max:", y)

代码说明

  1. 移除了循环中的return语句,确保遍历所有i(1-4)和j(1-4)的组合,每次找到更大的z时更新最大值和对应的i、j。
  2. 删除了多余的i +=1和j +=1,让for循环正常迭代。
  3. 调整执行顺序,先调用函数完成所有计算,再打印最终的最大值和对应的i、j。

正确输出

Maximum: 8
i at max: 4
j at max: 4

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 23:22:13