藍橋杯 演算法訓練 出現次數最多的整數

2021-09-03 03:00:15 字數 757 閱讀 5454

問題描述

編寫乙個程式,讀入一組整數,這組整數是按照從小到大的順序排列的,它們的個數n也是由使用者輸入的,最多不會超過20。然後程式將對這個陣列進行統計,把出現次數最多的那個陣列元素值列印出來。如果有兩個元素值出現的次數相同,即並列第一,那麼只列印比較小的那個值。

輸入格式:第一行是乙個整數n,n £ 20;接下來有n行,每一行表示乙個整數,並且按照從小到大的順序排列。

輸出格式:輸出只有一行,即出現次數最多的那個元素值。

輸入輸出樣例

樣例輸入

5100

150150

200250

樣例輸出

思路及**說明:

我的想法是設定三個變數,分別用於記錄當前陣列中出現次數最多的數,當前陣列出現次數最多的數的個數,和陣列中出現次數第二多的數的個數。

整型變數temp,記錄當前陣列中出現次數最多的數,初值設為陣列的第乙個元素,及a[0];

整型變數num,記錄陣列中出現最多的數的個數,及temp出現的次數;

整型變數fore,記錄陣列中出現次數第二多的數的個數,初值為1,不斷和num比較,更換num的值。

#include"iostream"

#include"algorithm"

using namespace std;

int main()

if(num} cout

}

藍橋杯 演算法訓練 出現次數最多的整數

這題思路比較簡單,易錯的點是n能取到小於1的數,而n 0時不用輸出,這一點不知道的話容易把問題想複雜。還有幾點關於本題 1,沒有特判n 0這種情況,其它都對的能得80分,沒過6,7組測試。2,這題資料沒有超int,int也可以過,但用long long 會0ms過。3,這題有人用字串存資料,過了,但...

藍橋杯 演算法訓練 出現次數最多的整數

問題描述編寫乙個程式,讀入一組整數,這組整數是按照從小到大的順序排列的,它們的個數n也是由使用者輸入的,最多不會超過20。然後程式將對這個陣列進行統計,把出現次數最多的那個陣列元素值列印出來。如果有兩個元素值出現的次數相同,即並列第一,那麼只列印比較小的那個值。輸入格式 第一行是乙個整數n,n 2 ...

藍橋杯演算法訓練 出現次數最多的整數

很簡單,但有乙個坑點,題目說了n是大於0且不超過20的整數 但它的第 六 七組資料n 0 n 20 所以加個判斷就能過了 下面是兩種方法 include include using namespace std intmain map iterator it it p.begin int max it...