CCF 中間數(Python實現 100分)

2021-08-29 12:14:40 字數 1745 閱讀 9385

目錄前言

一、問題描述

二、問題分析

三、程式說明

最近我在做ccf的題目,也打算把每道題的解題思路都寫到部落格上來,希望能幫助到也在做ccf題目的讀者們,希望你們通過本文能有所提示,幫助大家提公升程式設計能力。另外有個很好的想法就是,建議讀者們可以先看一下問題分析這一部分,然後自己再整理一下思路,重新做一遍,最後再參考**,我想這樣會更有收穫。

問題描述

在乙個整數序列a1, a2, …, an中,如果存在某個數,大於它的整數數量等於小於它的整數數量,則稱其為中間數。在乙個序列中,可能存在多個下標不相同的中間數,這些中間數的值是相同的。

給定乙個整數序列,請找出這個整數序列的中間數的值。

輸入格式

輸入的第一行包含了乙個整數n,表示整數序列中數的個數。

第二行包含n個正整數,依次表示a1, a2, …, an。

輸出格式

如果約定序列的中間數存在,則輸出中間數的值,否則輸出-1表示不存在中間數。

樣例輸入6

2 6 5 6 3 5

樣例輸出5

樣例說明

比5小的數有2個,比5大的數也有2個。

樣例輸入4

3 4 6 7

樣例輸出

-1樣例說明

在序列中的4個數都不滿足中間數的定義。

樣例輸入5

3 4 6 6 7

樣例輸出

-1樣例說明

在序列中的5個數都不滿足中間數的定義。

評測用例規模與約定

對於所有評測用例,1 ≤ n ≤ 1000,1 ≤ ai ≤ 1000。

這道題比較簡單,主要的解題思路如下:

把n個數字儲存在列表中,迴圈每個元素,記錄比該元素大的個數和小的個數;然後比較這兩個值,如果相等就把該數字存到另外乙個列表中,然後對新列表進行去除重複項,輸出結果即可。

n:表示要輸入n個數字

m:儲存n個數字的列表

middle:儲存中間數的列表

big:記錄比中間數大的個數

low:記錄比中間數小的個數

python語言的程式如下(100分):

# 中間數

n = int(input())

m = [int(x) for x in input().split()]

middle =

for i in m:

big = 0

low = 0

for j in m:

if i>j:

low += 1

elif ibig += 1

if big == low:

middle = list(set(middle)) # set()得到無序、無重複項的集合,同時轉為list型別

if middle == :

print(-1)

else:

for i in middle:

print(i,end=' ')

CCF題 中間數 2016 12 1

問題描述 在乙個整數序列 a1,a2,an中,如果存在某個數,大於它的整數數量等於小於它的整數數量,則稱其為中間數。在乙個序列中,可能存在多個下標不相同的中間數,這些中間數的值是相同的。給定乙個整數序列,請找出這個整數序列的中間數的值。輸入格式 輸入的第一行包含了乙個整數 n,表示整數序列中數的個數...

CCF 中間數(C語言)

問題描述 在乙個整數序列a1,a2,an中,如果存在某個數,大於它的整數數量等於小於它的整數數量,則稱其為中間數。在乙個序列中,可能存在多個下標不相同的中間數,這些中間數的值是相同的。給定乙個整數序列,請找出這個整數序列的中間數的值。輸入格式 輸入的第一行包含了乙個整數n,表示整數序列中數的個數。第...

CCF認證201612 1 中間數

問題描述 試題編號 201612 1 試題名稱 中間數時間限制 1.0s 記憶體限制 256.0mb 問題描述 問題描述 在乙個整數序列 a1,a 2,an中,如果存在某個數,大於它的整數數量等於小於它的整數數量,則稱其為中間數。在乙個序列中,可能存在多個下標不相同的中間數,這些中間數的值是相同的。...