けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

AtCoder ABC 252 A - ASCII code (8Q, 灰色, 100 点)

こういう char 型の扱い方に関する問題は、より難しい問題では当たり前のように登場するので、今のうちに慣れておきたいですね。

問題概要

英小文字 a, b, …, z の ASCII 文字コードはこの順に 97, 98, …, 122 である。

97 以上 122 以下の整数  N が与えられるので、ASCII 文字コードが  N であるような英小文字を出力せよ。

解法

まず、 x 番目 ( 0 \le x \le 25) のアルファベット文字は、次の文字 c のように表現できることに注意しましょう。 x = 0 のとき c = 'a' であり、 x = 25 のとき c = 'z' です。

char c = 'a' + x;  // x 番目のアルファベット文字

よって、 x の値が求められればよいと言えます。 N = 97 が、0 番目のアルファベット文字 'a' を表すのですから、

 x = N - 97

と求められます。

コード

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

int main() {
    int N;
    cin >> N;
    
    char c = 'a' + (N - 97);
    cout << c << endl;
}