CSP201903-1 小中大 (Python)
阿新 • • 發佈:2021-02-13
文章目錄
題目
試題編號: | 201903-1 |
試題名稱: | 小中大 |
時間限制: | 1.0s |
記憶體限制: | 512.0MB |
題目背景
在資料分析中,最小值最大值以及中位數是常用的統計資訊。
題目描述
老師給了你n個整陣列成的測量資料,保證有序(可能為升序或降序),可能存在重複的資料。請統計出這組測量資料中的最大值、中位數以及最小值,並按照從大到小的順序輸出這三個數。
輸入格式
從標準輸入讀入資料。
第一行輸入一個整數n,在第二行中存在n個有序的整數,表示測量資料,可能為升序或降序排列,可能存在連續多個整數相等,整數與整數之間使用空格隔開。
輸出到標準輸出。
包含一行,包括最大值、中位數以及最小值共三個數,並按照從大到小的順序輸出。資料與資料之間使用空格隔開。對於整數請直接輸出整數,對於可能出現的分數,請輸出四捨五入保留1 位小數的結果。
樣例1 輸入
3
-1 2 4
樣例1 輸出
4 2-1
樣例1 解釋
4為最大值,2為中位數,-1為最小值。
樣例 2 輸入
4
-2 -1 3 4
樣例 2 輸出
4 1-2
樣例2 解釋
4為最大值,(-1+3)÷2=1為中位數,-2為最小值。
子任務
程式程式碼
# 輸入數字個數
n = int(input())
# 輸入數字
numberList = input().split()
# 型別轉換
for i in range(n):
numberList[i] = int(numberList[i])
# 列表排序
numberList.sort()
# 找出最大和最小元素
min = numberList[0]
max = numberList[-1]
# 分為總數為奇偶的情況得出中位數
m = int(n / 2)
if n % 2 == 0: # n為偶數
# 計算中間兩數之和
midSum = numberList[m] + numberList[m - 1]
# 計算中位數結果輸出整數或小數
if midSum % 2 == 0: # 當計算結果為整數
mid = int(midSum / 2)
else: # 當計算結果不為整數(此時只能為一位小數)
mid = midSum / 2
else: # n為奇數
mid = numberList[m]
#輸出
print(max,mid,min)