意外と、こういうの最初は詰まるかもしれない!
問題概要
英小文字からなる長さが奇数の文字列 が与えられるので、 の中央の文字を出力せよ。
考えたこと
の先頭の文字を 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; }