# 閏年# 迴圈# 條件判斷

d532 - 文文的求婚 (三)

🔗 前往 ZeroJudge 原題

題目描述

題目要求計算給定年份範圍 ab (包含 ab) 之間閏年的數量。

解題思路

閏年的判斷規則如下:

  1. 能被 4 整除但不能被 100 整除的年份是閏年。
  2. 能被 400 整除的年份也是閏年。

程式碼使用迴圈遍歷從 ab 的所有年份,並對每個年份應用上述閏年判斷規則。如果年份是閏年,則將閏年計數器 ans 增加 1。最後,輸出 ans 的值。

複雜度分析

  • 時間複雜度: O(b - a)
  • 空間複雜度: O(1)

程式碼

#include <iostream>

using namespace std;

int main (){
	
	int a=0,b=0,ans=0;
	while(cin >> a >> b){
		for(int i=a;i<=b;i++){
			if(i % 4 == 0 && i % 100 != 0 || i % 400 == 0){
				ans++;
			}
		}
		cout << ans << endl;
		ans=0;
	}
	
}

Discussion