a058 - MOD3
題目描述
題目要求讀取 n 個介於 1 到 50000 之間的整數,並計算其中除以 3 餘數為 0、1、2 的數字分別有多少個。最後以空白分隔輸出這三個數量。
解題思路
這題的解題思路非常直接。我們只需要遍歷輸入的 n 個數字,對於每個數字,計算其除以 3 的餘數,然後根據餘數的值更新對應的計數器即可。最後輸出三個計數器的值。
複雜度分析
- 時間複雜度: O(n)
- 空間複雜度: O(1)
程式碼
#include <iostream>
using namespace std;
int main(){
int n=0;
int b=0;
int a1=0,a2=0,a3=0;
cin >> n;
for(int i=n;i>0;i--){
cin >> b;
if(b%3==0){
a1++;
}
if(b%3==1){
a2++;
}
if(b%3==2){
a3++;
}
}
cout << a1 << " " << a2 << " " << a3;
}