ebisukeプログラミング初心者脱出黙示録

30歳を過ぎてから始めたプログラミングと競プロの記録。Pythonで取り組んでいます。Arduinoで電子工作も

京セラプログラミングコンテスト2021 A - Century / B - 200th ABC-200【Python解答例】

f:id:ebisuke33:20210508231146p:plain

京セラプログラミングコンテスト2021(AtCoder Beginner Contest200)のA とB問題についてPythonの解答例を記事にしていきます。
KYOCERA Programming Contest 2021(AtCoder Beginner Contest 200) - AtCoder


AtCoder Beginner Contest200 A - Century

A - Century

問題文

西暦 N 年は何世紀ですか?

制約

・1≤N≤3000

解答例

n = int(input())

ans = -(-n //100)

print(ans)

解説

与えられた西暦のNを世紀に直して答える問題です。

Nを100で割って余りを切り上げた値を出力すればOKです。

余り切り上げについて過去の記事はこちら
ebisuke33.hatenablog.com



AtCoder Beginner Contest200 B - 200th ABC-200

B - 200th ABC-200

問題文

整数 N が与えられます。以下の操作を K 回行った後の整数 N を出力してください。

・整数 N が 200 の倍数であれば、N を 200 で割る。
・そうでなければ、整数 N を、N の後ろに文字列として 200 を付け加えた整数に置き換える。
・例えば、7 を置き換えると 7200 に、1234 を置き換えると 1234200 になります。

制約

・入力は全て整数
・1≤N≤10^5
・1≤K≤20

解答例

n, k = map(int,input().split())

for i in range(k):
    # 200の倍数のとき、200で割る
    if n % 200 == 0:
        n = n // 200
    # 200の倍数でないとき、後ろに200を付け加える
    else:
        n = n * 1000 + 200

print(n)

解説

与えられる整数Nに対して、K回だけ問題文にある処理を行います。
処理を行った後の値を答える問題です。

Nに行う処理は200の倍数か否かで変化します。
200の倍数のときは、Nを200で割ればOKです。
そうでないときはNの後ろに文字列として200を付け加えた値とします。
なので、Nに1000をかけた値に200を加えればOKでした。

K回処理を行うループを抜けたあとにNを出力すればACでした。


ABC200の関連記事はこちら
ebisuke33.hatenablog.com