Yuulis.log

トンネルを抜けるとそこは参照エラーであった。

【AtCoder】ABC 365 A - Leap Year | 茶コーダーが解くAtCoder

atcoder.jp

実行時間制限: 2 sec / メモリ制限: 1024 MB / Difficulty: 10

問題概要

西暦  Y 年の日数を求めよ。ただし、制約の範囲内で西暦  Y 年の日数は以下の通り。

  •  Y が4の倍数でない年は  365 日である。
  •  Y が4の倍数かつ100の倍数でない年は  366 日である。
  •  Y が100の倍数かつ400の倍数でない年は  365 日である。
  •  Y が400の倍数である年は  366 日である。

制約

  •  Y は整数で  1583 \leq Y \leq 2023 を満たす。

考察

結局は閏年か否かを判定すればよいということ。問題文の通りに条件分岐をすれば十分だろう。

コード

#include <bits/stdc++.h>
using namespace std;

// ======================================== //

int main()
{
    int Y;
    cin >> Y;

    if (Y % 4 != 0)
        cout << 365 << endl;
    else if (Y % 4 == 0 && Y % 100 != 0)
        cout << 366 << endl;
    else if (Y % 100 == 0 && Y % 400 != 0)
        cout << 365 << endl;
    else if (Y % 400 == 0)
        cout << 366 << endl;
}

atcoder.jp

実装時間: 5分以内