こういう char
型の扱い方に関する問題は、より難しい問題では当たり前のように登場するので、今のうちに慣れておきたいですね。
問題概要
英小文字 a, b, …, z の ASCII 文字コードはこの順に 97, 98, …, 122 である。
97 以上 122 以下の整数 が与えられるので、ASCII 文字コードが であるような英小文字を出力せよ。
解法
まず、 番目 () のアルファベット文字は、次の文字 c
のように表現できることに注意しましょう。 のとき c
= 'a' であり、 のとき c
= 'z' です。
char c = 'a' + x; // x 番目のアルファベット文字
よって、 の値が求められればよいと言えます。 が、0 番目のアルファベット文字 'a' を表すのですから、
と求められます。
コード
#include <bits/stdc++.h> using namespace std; int main() { int N; cin >> N; char c = 'a' + (N - 97); cout << c << endl; }