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

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

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 - 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

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