意外と、こういうの最初は詰まるかもしれない!
問題概要
英小文字からなる長さが奇数の文字列 が与えられるので、
の中央の文字を出力せよ。
考えたこと
の先頭の文字を 0 文字目と考えることにする。結論から言えば、
の長さを
としたとき、中央の文字は
S[N/2]
と表せる(S[(N - 1) / 2] でもよい)。具体的な数値で確かめてみよう。
のとき:
であり、中央の文字は
S[0]のとき:
であり、中央の文字は
S[1]のとき:
であり、中央の文字は
S[2]- ...
となり、確かに合っている。
コード
#include <bits/stdc++.h> using namespace std; int main() { string S; cin >> S; cout << S[S.size()/2] << endl; }