一、题目
二、算法思想
- 题目要求解出
n
个数字中的最大值、最小值和中位数- 在进行求解的时候可以先将这
n
个数先递增或是递减进行排序- 这样默认的最小值和最大值就分别为第
1
个数和第n
个数了。
中位数的判断可以分成两种情况:
n
的数值为奇数
,此时的中位数就是这n
个数中最中间的数
n
的数值为偶数
,此时的中位数需要由最中间的两个数
进行平均计算得到。
三、代码
# coding=utf-8
#作者:小狐狸
#题目:小中大
if __name__ == '__main__':
n = int(input())
number = list(input().split()) #n个整数
for i in range(n): #转换为int类型
number[i] = int(number[i])
number = sorted(number) #列表递增排序
## print(number)
max_number = number[n-1] #最大值
mid_number = number[0] #中位数
min_number = number[0] #最小值
## print(max_number,min_number)
if n%2==1: #有奇数个整数时
mid_number = number[(n-1)//2] #最中间的一个数为中位数
else: #有偶数个整数时
mid_number = (number[n//2] + number[(n//2)-1])/2 #最中间两位数的平均数为中位数
## print(mid_number)
#若中位数中含有小数点且小数点后的数字都为0时
if '.' in str(mid_number) and mid_number==int(mid_number):
mid_number = int(mid_number) #保留整数位
print(max_number,mid_number,min_number)