APCS實作題2022年6月第1題數字遊戲參考解法
若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。 If you like this post, please click the ads on the blog or buy me a coffee . Thank you very much. 題目連結 https://zerojudge.tw/ShowProblem?problemid=i399 。 題目說明 給三個介於 1 ~ 9 的整數 A1,A2,A3。 先輸出一個正整數 P 表示眾數數量,也就是出現最多次的數字的次數。 接下來將輸入的三個數字去除重複(剩下一個)後由大到小依序輸出。 範例一: 輸入 6 6 6 ,輸出 3 6。 因為出現最多次的數字是 6,共出現 3 次,並且只有出現 6 這個數字,因此輸出 3 6。 範例二: 輸入 7 9 7 ,輸出 2 9 7。 因為出現最多次的數字是 7,共出現 2 次,並且出現了 7 和 9,因為集合需要由大到小輸出,因此輸出 2 9 7。 範例三: 輸入 4 1 8 ,輸出 1 8 4 2。 因為三個數字各出現 1 次,集合由大到小輸出,因此輸出 1 8 4 1。 想法: 將輸入的數字記錄在陣列A。 用陣列或串列cnt紀錄數字 1 ~ 9 各自出現幾次。找次數陣列cnt中的次數最大值。 依次數值對陣列A由小排到大。 對陣列A,從最大值開始輸出不重複的數字, C++ 程式碼 #include <iostream> #include <algorithm> using namespace std; int main() { const int N = 3; int a[N]; while (cin >> a[0] >> a[1] >> a[2]) { int cnt[10] = {0}; // 紀錄數字 1 ~ 9 各自出現幾次 // 算數字 1 ~ 9 各自出現幾次 for ( int i = 0; i < N; i++) cnt[a[i]]++; ...