# APCS實作題2022年6月第1題:數字遊戲 > 日期:2023年9月23日 > 作者:王一哲 > 題目來源:111年6月實作題第1題 > [ZeroJudge 題目連結](https://zerojudge.tw/ShowProblem?problemid=h082) <br /> ## 題目 ### 問題描述 給三個介於 1 ~ 9 的整數 $A_1, A_2, A_3$。 先輸出一個正整數 $P$ 表示眾數數量,也就是出現最多次的數字的次數。 接下來將輸入的三個數字去除重複(剩下一個)後由大到小依序輸出。 <br /> ### 輸入說明 三個介於 1~9 的整數。 子題配分 - 60%:每個數字都不相同 - 40%:無額外限制 <br /> ### 輸出說明 先輸出一個數值 $P$ 表示出現最多次的數字個數。接下來將輸入的三個數字去除重複(剩下一個)後由大到小依序輸出。 <br /> ### 範例一:輸入 ``` 6 6 6 ``` ### 範例一:正確輸出 ``` 3 6 ``` <br /> ### 範例二:輸入 ``` 7 9 7 ``` ### 範例二:正確輸出 ``` 2 9 7 ``` <br /> ### 範例三:輸入 ``` 4 1 8 ``` ### 範例三:正確輸出 ``` 1 8 4 1 ``` <br /> ## 提示 範例測資一,出現最多次的數字是 $6$,共出現 $3$ 次,並且只有出現 $6$ 這個數字,因此輸出 $3~6$。 範例測資二,出現最多次的數字是 $7$,共出現 $2$ 次,並且出現了 $7$ 和 $9$,因為集合需要由大到小輸出,因此輸出 $2~9~7$。 範例測資三,三個數字各出現 $1$ 次,集合由大到小輸出,因此輸出 $1~8~4~1$。 <br /><br /> ## Python 程式碼 於 ZeroJudge 測試結果,最長運算時間約為 21 ms,使用記憶體最多約為 3.3 MB,通過測試。 ```python= A = list(map(int, input().split())) # 讀取3個數字存入串列 A A.sort(reverse=True) # 由大到小排序 C = [0]*9 # 統計 1 ~ 9 數字的個數 for a in A: C[a-1] += 1 P = max(C) # 眾數的數量 P print(P, end=" ") # 印出 P 並以空格結尾 mode = C.index(P) + 1 # 找出眾數的值 num = P # 計算眾數剩下數量用的變數 for i in range(len(A)): # 依序讀取 A 的內容 if A[i] == mode and num > 1: # 如果 A[i] 是眾數且目前數量大於1 num -= 1 # 將數量減1 else: # 若以上條件不成立,印出 A[i] 並以空格結尾,若是最後一個元素則以換行符號結尾 print(A[i], end=" " if i < len(A)-1 else "\n") ``` <br /><br /> ## C++ 程式碼 於 ZeroJudge 測試結果,最長運算時間約為 3 ms,使用記憶體最多約為 348 kB,通過測試。 ```cpp= #include <iostream> #include <algorithm> using namespace std; int main() { int A[3], C[9] = {0}; // 儲存資料用的陣列 A,統計 1 ~ 9 數字的個數用的陣列 C for(int i=0; i<3; i++) cin >> A[i]; // 讀取3個數字存入陣列 A sort(A, A+3, greater<>()); // 由大到小排序 for(int i=0; i<3; i++) C[A[i]-1]++; // 統計 A 當中 1 ~ 9 數字的個數 int P = 0, mode = 0; // 眾數 mode 及數量 P for(int i=0; i<9; i++) { if (C[i] > P) { P = C[i]; mode = i+1; } } cout << P << " "; // 印出 P 並以空格結尾 int num = P; // 計算眾數剩下數量用的變數 for(int i=0; i<3; i++) { // 依序讀取 A 的內容 if (A[i] == mode && num > 1) { // 如果 A[i] 是眾數且目前數量大於1 num--; // 將數量減1 } else { // 若以上條件不成立,印出 A[i] 並以空格結尾,若是最後一個元素則以換行符號結尾 cout << A[i] << " \n"[i == 2]; } } return 0; } ``` <br /><br /> --- ###### tags:`APCS`、`Python`、`C++`