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

如何避免求三个整数最小值时打印输出重复相同数值?

问题解决:多数值相等时重复打印最小值的问题

我编写的代码在多数测试场景下能正常输出三个整数的最小值,但当两个或三个数值相等时,会重复打印相同的最小值(例如三个数均为7时,会连续打印三次7)。需求要求输入3个整数,打印最小整数,且需支持两个或三个数值相等的场景。

原代码如下:

x = int(input("Insert integer"))
y = int(input("Insert integer"))
z = int(input("Insert integer"))

if x <= y and x <= z:
    print(x)

if y <= x and y <= z:
    print(y)
    
if z <= x and z <= y:
    print(z)

解决方案

方法1:使用elif替代后续if判断

将后面的两个if改为elif(else if的缩写),这样只要第一个满足条件的分支执行后,后续分支就不会再被判断,从根源避免重复打印:

x = int(input("Insert integer"))
y = int(input("Insert integer"))
z = int(input("Insert integer"))

if x <= y and x <= z:
    print(x)
elif y <= z:
    print(y)
else:
    print(z)

说明:第一个if判断x是否为最小值,若不成立则说明x不是最小,此时只需比较y和z即可,最终只会执行一个分支,打印一次最小值。

方法2:直接调用Python内置min()函数

这是最简洁高效的方式,Python内置的min()函数可直接返回多个参数中的最小值,无论有多少个相等的最小值,都只会打印一次:

x = int(input("Insert integer"))
y = int(input("Insert integer"))
z = int(input("Insert integer"))

print(min(x, y, z))

说明:min()函数会自动处理所有相等场景,完全符合需求,代码量最少。

方法3:先获取最小值再统一打印

先通过比较确定最小值,最后只打印一次,避免重复输出:

x = int(input("Insert integer"))
y = int(input("Insert integer"))
z = int(input("Insert integer"))

min_val = x
if y < min_val:
    min_val = y
if z < min_val:
    min_val = z
print(min_val)

说明:先假设x为最小值,依次与y、z比较并更新最小值,最后统一打印,确保只输出一次。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 19:25:28