d070 - 格瑞哥里的煩惱 (0 尾版)
題目描述
題目要求判斷給定的年份是否為閏年,並根據格瑞哥里曆的規則輸出 "a leap year" 或 "a normal year"。輸入以 0 結尾,0 不參與判斷。
解題思路
根據格瑞哥里曆的閏年判斷規則,如果年份能被 400 整除,或者能被 4 整除但不能被 100 整除,則為閏年。否則為平年。程式使用 while 迴圈讀取年份,直到輸入為 0 為止。在迴圈內部,使用條件判斷式檢查年份是否符合閏年的條件,並輸出相應的結果。
複雜度分析
- 時間複雜度: O(n),其中 n 是輸入的年份數量。
- 空間複雜度: O(1),程式只使用了常數級別的額外空間。
程式碼
#include <iostream>
using namespace std;
int a;
int main(){
while(cin>>a){
if(a==0)break;
if(a%400==0||a%4==0&&a%100!=0)
cout<<"a leap year"<<endl;
else
cout<<"a normal year"<<endl;
}
return 0;
}