【AtCoder】ABC200解説(Python)

京セラプログラミングコンテスト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)
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次