AtCoder

ABC365 A問題(Leap Year)を解く

AtCoder_ABC365_A

AtCoder が提供しているABC(AtCoder Beginner Contest)365 A問題をC++とPythonで解いてみました。ABC365は、2024年8月3日21:00に実施されました。

AtCoder の紹介はこちらに、プログラミングの方針はこちらに記事があります。

A問題 Leap Year(Difficulty : 10)

問題の詳細は、リンク先をご覧ください。

ABC365 A問題 Leap Year

与えられた年がうるう年か判定します。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 の問題を紹介していきます。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA