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

Python中接收多个输入后如何输出所有对应结果?

问题分析与代码修复

原代码存在两个核心问题:

  • 全局变量sum1未在每个测试用例开始时重置,导致多个用例的结果被累加;
  • 仅在所有用例处理完成后输出一次结果,无法分别返回每个输入对应的答案。

修改后的基础版本代码

将sum1的初始化移至外层循环内部,确保每个测试用例的总和从零开始计算,并在每个用例处理完成后立即输出结果:

t = int(input().strip())

for t_itr in range(t):
    sum1 = 0
    n = int(input().strip())
    
    for i in range(n):
        if i % 3 == 0 or i % 5 == 0:
            sum1 += i
    
    print(sum1)

优化版本(数学公式替代循环)

对于较大的n,循环遍历会降低效率,可通过数学公式直接计算小于n的3、5倍数之和(需排除重复计算的15倍数):

t = int(input().strip())

def get_sum(n):
    def sum_of_multiples(m):
        count = (n - 1) // m
        return m * count * (count + 1) // 2
    return sum_of_multiples(3) + sum_of_multiples(5) - sum_of_multiples(15)

for _ in range(t):
    n = int(input().strip())
    print(get_sum(n))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 14:40:34