京セラプログラミングコンテスト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)
