京セラプログラミングコンテスト2021 A - Century / B - 200th ABC-200【Python解答例】
京セラプログラミングコンテスト2021(AtCoder Beginner Contest200)のA とB問題についてPythonの解答例を記事にしていきます。
KYOCERA Programming Contest 2021(AtCoder Beginner Contest 200) - AtCoder
AtCoder Beginner Contest200 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
問題文
整数 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