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

Python基础编程:用FOR循环实现数对和判断与最大差值计算

Python基础:数对和的相等性判断与最大连续差值计算

原代码问题分析

  • 循环范围错误:count_numbers = int(input()) * 2已经得到总数字个数2n,但循环时写成range(0, count_numbers * 2, 2),导致循环次数翻倍,会尝试读取远超需求的输入。
  • 数对和记录逻辑错误:每次循环读取4个数字并计算两个数对的和,但直接覆盖了sum_pair1和sum_pair2,无法保存所有n个数对的和,最终仅比较了最后两个数对的结果,完全不符合需求。
  • 未实现连续差值计算:需求要求不相等时计算连续数对和的最大差值,原代码完全没有处理这部分逻辑。

修正后的代码

# 获取数对数量n
n = int(input())
# 存储所有数对的和
pair_sums = []

# 循环读取2n个数字,计算每个数对的和
for _ in range(n):
    num1 = int(input())
    num2 = int(input())
    pair_sums.append(num1 + num2)

# 判断所有数对和是否相等
all_equal = True
first_sum = pair_sums[0]
for s in pair_sums[1:]:
    if s != first_sum:
        all_equal = False
        break

if all_equal:
    print(f"Yes, value={first_sum}")
else:
    # 计算连续数对和的差值的绝对值,找最大值
    max_diff = 0
    for i in range(len(pair_sums) - 1):
        current_diff = abs(pair_sums[i] - pair_sums[i+1])
        if current_diff > max_diff:
            max_diff = current_diff
    print(f"No, maxdiff={max_diff}")

代码解释

  1. 输入处理:先读取n,然后循环n次,每次读取两个数字组成数对,计算和并存入列表pair_sums,确保收集到所有n个数对的和。
  2. 相等性判断:以第一个数对的和为基准,遍历剩余所有和,只要有一个不同就标记为不相等。
  3. 最大连续差值计算:遍历数对和列表,依次计算相邻两个和的差值绝对值,记录最大值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 18:27:52