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 ='')
