AtCoder-ABC220 A - AtCoder Quiz 2 / B - Base K【Python解答例】
AtCoder Beginner Contest220のA とB問題についてPythonの解答例を記事にしていきます。
AtCoder Beginner Contest 220 - AtCoder
AtCoder Beginner Contest220 A - Find Multiple
問題文
A 以上 B 以下であるような C の倍数を、1 つ出力してください。
条件を満たす数が存在しない場合は -1 を出力してください。
制約
・1≤A≤B≤1000
・1≤C≤1000
・入力は全て整数
解答例
a, b, c = map(int,input().split()) ans = c * (b // c) if ans >= a: print(ans) else: print(-1)
解説
A以上B以下のCの倍数が存在すれば出力する問題です。
B以下の最大のCの倍数は、BをCで除算した商にCをかけた値でansとしました。
これがA以上であればansを出力し、そうでなければ求める値は存在しないので-1を出力すればACです!
AtCoder Beginner Contest220 B - Base K
問題文
整数 A,B が K 進法表記で与えられます。
A×B を 10 進法表記で出力してください。
制約
・2 ≤ K ≤ 10
・1 ≤ A,B ≤ 10 ^5
・A,B は K 進法表記で与えられる
解答例
k = int(input()) a, b = map(int,input().split()) a_10 = int(str(a),k) b_10 = int(str(b),k) ans = a_10 * b_10 print(ans)
解説
K進数のA,Bをかけた値を10進数表記で答える問題です。
int(str(a),k)でk進数のaを10進数に変換することができます。
これでa_10,b_10にk進数のa, b をそれぞれ代入しました。
ansにa_10×b_10を計算した値をいれて出力すればOKでした。
ABC220の関連記事はこちら
ebisuke33.hatenablog.com
ebisuke33.hatenablog.com