問題
4で割り切れる年はうるう年ですが、100で割り切れる場合は例外です。ただし、400で割り切れる年はこの例外にもかかわらずうるう年となります。この算術的な規則を、与えられるすべての年に適用してください。
leap_year(year) を実装してください。
入力
year: 判定する西暦年。
出力
うるう年の場合は true、そうでない場合は false を返してください。
制約
1 ≤ year ≤ 9999。
例
例 1
入力:
year = 2024
期待される出力:
expected = True
入力:
long long year = 2024;
期待される出力:
bool expected = true;
入力:
long year = 2024;
期待される出力:
bool expected = true;
解説
2024年は4で割り切れ、100では割り切れません。
例 2
入力:
year = 2100
期待される出力:
expected = False
入力:
long long year = 2100;
期待される出力:
bool expected = false;
入力:
long year = 2100;
期待される出力:
bool expected = false;
解説
2100年は100で割り切れますが400では割り切れないため、世紀の例外が適用されます。
解き方のヒント
まずは自分で考えてから、ヒントを 1 つずつ開いてみましょう。
ヒント 1
ほとんどの年は4で割り切れるかで決まるが、100年単位は例外。
ヒント 2
400で割り切れる年は、100で割り切れていても閏年。
ヒント 3
100年単位を除外する前に例外を確認しないと、2000のような年を誤判定する。
目安の計算量
時間 O(1)、追加メモリ O(1)
参考資料
この課題はCodeUtility用に調整されています。上記の説明と制約に従ってください。