AtCoder

ABC314 A問題(3.14)を解く

AtCoder_ABC314_A

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

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

A問題 3.14(Difficulty : 30)

問題はリンク先をご覧ください。

ABC314 A問題 3.14

文字列の問題として解きました。AtCoder Problems による Difficulty は 30 でした。

解答案

C++ プログラム例(ABC314A)

円周率は与えられた値を使います。小数点第N位まで出力することを、与えられた円周率の文字列をN+2文字まで出力すると読み替えます。2文字は、整数部の ‘3’ と小数点の ‘.’ となります。

C++ では、substr を使いました(10行目)。以下が、C++プログラムとなります。

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

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

	string s = "3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679";
	cout << s.substr(0, 2 + n) << endl;

	return 0;
}

AC(Accepted=正しいプログラム)と判定されました。

Python プログラム例(ABC314A)

Python ではスライス記法を使いました(5行目)。

文字列が102文字あるため、1行の長さが79桁を超えました。PEP 8(日本語版)を満たしませんが、分かりやすさを優先して、このまま紹介します。

"""AtCoder Beginner Contest 314 A"""
n = int(input())

s = "3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679"
print(s[:n + 2])

こちらも「AC」と判定されました。

最後に

314回目のABCでした。A問題のタイトルは、ずばり “3.14” でした。

このABC314から、使用できる言語とライブラリが更新されました。言語選択によりC++20の機能が使えるようになりました。Python も CPython のバージョンは、3.11.4 まで更新されていました。

引き続き ABC の問題を紹介していきます。

COMMENT

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

CAPTCHA