Official
A - 3.14 Editorial
by
A - 3.14 Editorial
by
MMNMM
初心者の方へ
- AtCoder をはじめたばかりで何をしたらよいか分からない方は、まずは practice contest の問題A「Welcome to AtCoder」を解いてみてください。基本的な入出力の方法が載っています。
- また、プログラミングコンテストの問題に慣れていない方は、AtCoder Beginners Selection の問題をいくつか解いてみることをおすすめします。
- C++入門 AtCoder Programming Guide for beginners (APG4b) は、競技プログラミングのための C++ 入門用コンテンツです。
文字列 "3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679"
の先頭 \(N+2\) 文字を出力すればよいです。
これは、\(N+2\) 回だけループを回すことで実現できます。
「文字列 \(S\) の先頭 \(k\) 文字を取った文字列」を作る方法が存在する言語ではその関数を使うことでもこの問題を解くことができます(C++ では std::string::substr
関数を、Python ではスライスを使うとよいです)。
実装例は以下のようになります。 C++ と Python でループを使う実装例とループを使わない実装例を載せます。
出力にループを使う実装
C++
#include <string>
#include <iostream>
using namespace std;
int main() {
string pi = "3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679";
int N;
cin >> N;
for (int i = 0; i < N + 2; ++i) // 先頭 N + 2 文字を出力する
cout << pi[i];
cout << endl;
return 0;
}
Python
pi = '3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679'
N = int(input())
for i in range(N + 2):
print(pi[i], end='')
出力にループを使わない実装
C++
#include <string>
#include <iostream>
using namespace std;
int main() {
string pi = "3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679";
int N;
cin >> N;
cout << pi.substr(0, N + 2) << endl;
return 0;
}
Python
pi = '3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679'
N = int(input())
print(pi[:N + 2])
posted:
last update: