1. 程式人生 > 其它 >CSP201903-1 小中大 (Python)

CSP201903-1 小中大 (Python)

技術標籤:CCFCSP演算法python

文章目錄

題目

試題編號: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)