京セラプログラミングコンテスト2021(AtCoder Beginner Contest 200)の解説記事です。
目次
ABC200 A – Century
問題
問題文の要約は以下の通りです。
問題の要約
西暦 \(N\) 年が何世紀か求めよ。
制約
・\(1 \le N \le 3000\)
入力
\(N\)
出力
答えを整数として出力せよ。
解説
西暦1年から 100年までが1世紀、 101年から200年までが2世紀なので、西暦 \(N\) 年が100で割り切れるときはN//100
世紀、割り切れないときはN//100+1
世紀になります。
解説
まず、\(N\) をint
型で受け取ります。
# 入力
N=int(input())
西暦 \(N\) 年が100で割り切れるときはN//100
世紀、割り切れないときはN//100+1
世紀を出力します。
# 出力
print(N//100 if N%100==0 else N//100+1)
解答
# 入力
N=int(input())
# 出力
print(N//100 if N%100==0 else N//100+1)
ABC200 B – 200th ABC-200
問題
問題文の要約は以下の通りです。
問題の要約
整数 \(N\) を与えたとき、以下の操作を \(K\) 回行った後の整数 \(N\) を出力せよ。
- 整数 \(N\) が200の倍数であれば、 \(N\) を200で割る。
- 整数 \(N\) が200の倍数でなければ、 \(N\) の後ろに文字列として200を付け加えた整数に置き換える。
入力
\(N\) \(K\)
出力
答えを整数として出力せよ。
解説
指示通りに操作を行う。
解説
操作を行う関数を用意します。
- 整数 \(N\) が200の倍数であれば、 \(N\) を200で割る。
- 整数 \(N\) が200の倍数でなければ、 \(N\) の後ろに文字列として200を付け加えた整数に置き換える。
\(N\) はint
型なので200を付け加えるときは、str
に変換し、200を付け加えた後にint
型に変換します。
# 操作を行う関数
def operation(N):
#200の倍数のとき、200で割る
if N%200==0:
return N//200
#200の倍数でないとき、200を付け加える
else:
return int(str(N)+'200')
\(N\) と \(K\) をint
型で受け取ります。
# 入力
N,K=map(int,input().split())
操作を \(K\) 回繰り返します。
# 操作をK回繰り返す
for _ in range(K):
N=operation(N)
最後に答えを出力します。
# 出力
print(N)
解答
# 操作を行う関数
def operation(N):
#200の倍数のとき、200で割る
if N%200==0:
return N//200
#200の倍数でないとき、200を付け加える
else:
return int(str(N)+'200')
# 入力
N,K=map(int,input().split())
# 操作をK回繰り返す
for _ in range(K):
N=operation(N)
# 出力
print(N)