![見出し画像](https://assets.st-note.com/production/uploads/images/54829963/rectangle_large_type_2_8bf06771c902bceb35624cbcc3018651.png?width=1200)
AtCoder Beginner Contest 205を振り返る C問題
C - POW
問題
3つの整数a, b, cが与えられるので、aのc乗とbのc乗でどちらが大きいかを出す問題。
制約
-10**9 <= a, b <= 10**9
1 <= c <= 10**9
所感
兎に角数が大きいです。ABCで累乗の計算が出てくるときには素直にやると計算量が多すぎてTLE(時間切れ)になるので、やっちゃダメです。
今回のケースだと累乗の指数が共通(c)なので基本的には底を比較すればOKです。唯一気を付けるのは指数が偶数の場合で、その場合は絶対値で比較が必要です。
作成したコード
a, b, c = map(int, input().split())
if c%2 == 0:
a, b = a**2, b**2
if a < b:
print("<")
elif a > b:
print('>')
else:
print('=')
指数が偶数の場合に2乗して代入した辺りが個人的にはやったった感を感じた箇所です。
a, b = abs(a), abs(b)
でもいいんですが、文字数がちょっとだけ少なくて済みました。
次回は解けなかったD問題を解説観ながら解いてみたいところ。
この記事が気に入ったらサポートをしてみませんか?