# Simulation# Date Calculation

e922 - pA. ISO日曆系統(一)

🔗 前往 ZeroJudge 原題

題目描述

題目要求輸出每年1月和2月,週數相同的八個日期。根據 ISO 8601 標準,一週從星期一開始,且最靠近年初的星期一為第一週的星期一。由於題目假設每年沒有閏年,因此每年有365天。

解題思路

題目要求找出1月和2月,週數相同的八個日期。由於每年都是365天,且週數的計算方式固定,因此可以透過模擬日期,並輸出符合條件的日期。程式從1月4日開始,每次增加7天,直到輸出八個日期。如果日期超過當月的天數,則將日期調整到下個月,並更新月份。

複雜度分析

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

程式碼

#include <iostream>
using namespace std;
int m=1,d=4;
int main(){
	for(int i=0;i<8;++i){
		cout << m << "/" << d << "\n";
		d+=7;
		if(d>30){
			d-=31;
			++m;
		}
	}
}

Discussion