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

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

AtCoder-ABC205 C - POW【Python解答例】

f:id:ebisuke33:20210613234858p:plain

AtCoder Beginner Contest205のC問題についてPythonの解答例を記事にしていきます。
AtCoder Beginner Contest 205 - AtCoder



AtCoder Beginner Contest205 C - POW

C - POW

問題文

数 X を Y 回掛けたものを「X の Y 乗」といい、pow(X,Y) で表します。 例えば pow(2,3)=2×2×2=8 です。

3 つの整数 A,B,C が与えられるので、pow(A,C) と pow(B,C) の大小を比較してください。

制約

・−10^9≤A,B≤10^9
・1≤C≤10^9
・入力は全て整数

解答例

a, b, c = map(int,input().split())

if c % 2 == 0:
    if abs(a) > abs(b):
        print(">")
    elif abs(a) < abs(b):
        print("<")
    elif abs(a) == abs(b):
        print("=")
else:
    if a > b:
        print(">")
    elif a < b:
        print("<")
    elif a == b:
        print("=")

解説

aのc乗とbのc乗を比較してどちらが大きいか、あるいは同じか答える問題です。

実際に計算すると莫大な計算量になるのでa,bの大小関係に注目しました。


Cが偶数のとき、pow(A,C) と pow(B,C)はどちらも正の数になるのでAとBの絶対値を比較しました。

Cが奇数のとき、AとBの大小関係に従うので単純に大小関係を比較します。

この比較結果にあわせて答えを出力すればOKでした。




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