题意很简单,输入运动员的编号和射出箭的坐标,对比他们到圆心的距离,输出最近的(冠军)和最远的(菜鸟)编号
直接用求三角形最长边的计算公式对每一个坐标求距离,先设两个常量分别是0和200(任意设置一个不可能达到的距离就可),然后遍历过程中替代他们,最后输出
代码如下:
n = int(input())
res = '0000 0000'#先定输出结果
max_dis = 0
min_dis = 200#设置两个边界的常量
# num_dis = dict()#也可以用字典
for i in range(n):
num , x , y = input().split()
dis = ((abs(int(x)))**2+(abs(int(y)))**2)**(1/2)#求距离
#num_dis[dis] = num
if dis > max_dis:
res = res[:5] + num
max_dis = dis#最长距离替换
elif dis < min_dis:
res = num + res[4:]
min_dis = dis#最短距离替换
print(res)
#print(num_dis[min_dis]+' '+num_dis[max_dis])
提交结果:

本文介绍了一个简单的射击比赛成绩计算程序,通过输入运动员编号和射出箭的坐标,计算并输出离靶心最近(冠军)和最远(菜鸟)的运动员编号。程序使用了求三角形最长边的公式来计算距离。
2879

被折叠的 条评论
为什么被折叠?



