AtCoder が提供しているABC(AtCoder Beginner Contest)365 A問題をC++とPythonで解いてみました。ABC365は、2024年8月3日21:00に実施されました。
AtCoder の紹介はこちらに、プログラミングの方針はこちらに記事があります。
A問題 Leap Year(Difficulty : 10)
問題の詳細は、リンク先をご覧ください。
与えられた年がうるう年か判定します。AtCoder Problems による Difficulty は 10 でした。
解答案
C++ プログラム例(ABC365A)
うるう年か、以下の順番で判断します。
- 400で割り切れる年は、うるう年
- それ以外で100で割り切れる年は、うるう年ではない。
- それ以外で4で割り切れる年は、うるう年
- それ以外の場合は、うるう年ではない。
以下が、C++プログラムです。
#include <bits/stdc++.h>
using namespace std;
int main()
{
int y;
cin >> y;
if ((y % 400 == 0)||((y % 100 != 0)&&(y % 4 == 0))) {
cout << 366 << endl;
} else {
cout << 365 << endl;
}
return 0;
}
AC(Accepted=正しいプログラム)と判定されました。
Python プログラム例(ABC365A)
Python版も基本的な考え方は同じです。以下がプログラムです。
"""AtCoder Beginner Contest 365 A"""
y = int(input())
print(366 if y % 400 == 0 or (y % 100 != 0 and y % 4 == 0) else 365)
こちらも「AC」と判定されました。
最後に
うるう年については、Project Euler 問題19で紹介していますので、そちらもご覧ください。
引き続き ABC の問題を紹介していきます。