#P26031. [GESP一级2603] 交朋友

[GESP一级2603] 交朋友

[GESP一级2603]对应的【选择题】和【判断题】https://1lou.org/p/459

[GESP一级2603] 交朋友

试题名称:交朋友

时间限制:1.0 s

内存限制:512.0 MB

题目描述

Alice 班上共有 4 个⼩朋友,⾝⾼分别为H1,H2,H3,H4,其中 Alice 的⾝⾼为H1。

Alice 想要和⾝⾼最接近她的⼈交朋友,如果有多个⼈符合条件,则 Alice 想和其中较矮的那⼀⼈做朋友,你能告诉 她这个⼈的⾝⾼是多少吗?

输入格式

输⼊共4⾏,第i⾏包含⼀个整数H i ,表⽰班上⼩朋友的⾝⾼。 输出格式

输出1⾏,包含⼀个整数h,表⽰ Alice 想交的朋友的⾝⾼。 样例

输入样例1

150
165
135
133

输出样例1

135
参考程序(点击展开)
#读入4个小朋友的身高
H1 = int(input()) # Alice 的身高
H2 = int(input())
H3 = int(input())
H4 = int(input())
# 我们只关心 H2, H3, H4(其他三个小朋友)
# 先算出每个人和 Alice 的身高差(用绝对值,这样不会负数)
# 与H2小朋友的身高差
# 如果身高差为负数,转换为正数。
diff2 = H2 - H1
if diff2 < 0:
diff2 = -diff2
# 与H3小朋友的身高差
diff3 = H3 - H1
if diff3 < 0:
diff3 = -diff3
# 与H4小朋友的身高差
diff4 = H4 - H1
if diff4 < 0:
diff4 = -diff4
# 刚开始假设最好的朋友是 H2
best = H2 # 最好的小朋友身高,
best_diff = diff2 # 与最好小朋友的身高差
# 比较 H3 小朋友
if diff3 < best_diff: # 如果 H3 更接近,即身高差更小
best = H3 # 最好小朋友的身高进行更新
best_diff = diff3 # 与最好小朋友的身高差更新
elif diff3 == best_diff and H3 < best: # 如果一样近,但 H3 小朋友更矮
best = H3
# 比较 H4
if diff4 < best_diff: # 如果 H4 更接近
best = H4 # 最好小朋友的身高进行更新
best_diff = diff4 # 与最好小朋友的身高差更新
elif diff4 == best_diff and H4 < best: # 如果一样近,但 H4 更矮
best = H4
# 输出结果,即输出最好小朋友的身高
print(best)
编程题