HHKBプログラミングコンテスト2022 Winter(AtCoder Beginner Contest 282)の解説記事です。
目次
ABC282 A – Generalized ABC
問題
問題文の要約は以下の通りです。
問題の要約
整数 \(K\) が与えられるので、英大文字をA
から昇順に \(K\) 個繋げて得られる文字列を出力せよ。
制約
・\(K\) は1以上26以下の整数
入力
\(K\)
出力
答えを出力せよ。
解法1
英大文字の文字列から先頭 \(K\) 文字を出力する。
解説
まず英大文字の文字列を作り、s
とします。
s='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
入力 \(K\) を受け取ります。
K=int(input())
s
の先頭 \(K\) 文字目までをスライスで取得し、出力します。
print(s[:K])
解答
s='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
K=int(input())
print(s[:K])
解法2
string.ascii_uppercase
を使用する。
解説
文字列、ABCDEFGHIJKLMNOPQRSTUVWXYZ
は標準ライブラリstring.ascii_uppercase
で取得することができるためこれを使用します。
string
をimport
してs
をstring.ascii_uppercase
とします。
import string
s=string.ascii_uppercase
入力 \(K\) を受け取り、s
の先頭 \(K\) 文字目までをスライスで取得し、出力します。
K=int(input())
print(s[:K])
解答
import string
s=string.ascii_uppercase
K=int(input())
print(s[:K])
解法3
chr
、ord
を用いて、A
から \(K\) 番目までを出力する。
解説
A
からi
番目の英大文字はchr(ord('A') + i)
と書くことができます。
入力 \(K\) を受け取ります。
K=int(input())
for
文で \(K\) 番目までchr(ord('A') + i)
を出力します。改行されないように、end =''
を使用します。
for i in range(K):
print(chr(ord('A') + i),end ='')
解答
K=int(input())
for i in range(K):
print(chr(ord('A') + i),end ='')