# Modulo# Counting# Basic Math

a058 - MOD3

🔗 前往 ZeroJudge 原題

題目描述

題目要求讀取 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;
}

Discussion