题目:
输入温度,输出最接近0的那个。第一排输入温度个数,第二排输入温度。当未提供温度时,输出为0。如果两个温度同样接近0,则取正数。
代码:
import sys
import math
# Auto-generated code below aims at helping you parse
# the standard input according to the problem statement.
min =5526
n = int(input())
# the number of temperatures to analyse
if n>0:
for i in input().split():
# t: a temperature expressed as an integer ranging from -273 to 5526
t = int(i)
if math.fabs(min) > math.fabs(t):
min = t
elif math.fabs(min) == math.fabs(t):
if t > 0:
min = t
print(min)
else:
print('0')
其他:
1.在未提供温度则输出为0上卡了很久,后面在github上找到了答案(应该是),然后参考了思路解决了这个问题,即设置一个判断,当无输出温度时人在第一排输入0(n=0),则输出0。但是当时陷入了一个误区,即我想通过判断第二排来确认是否无输入(即第一排输入多少无所谓,所以当时在测试的时候尽管第二排无温度输入,但我会在第一排输入5),比如说通过字符串长度之类的方式来实现,结果失败,但我还是觉得这是因为我对于python的了解还不够深,应该是可以通过这种方式实现的(不死心)。
2.尽管通过了测试,但是在提交的时候并没有满分,因为规定了温度输入范围为-273至5526,而我在最开始编写代码的时候,给min的赋值为-273,这也就导致当输入为5526时,输出依旧为-273,导致出错,而后我将min的赋值改为5526,成功通过。