ABC100 B問題 Ringo's Favorite Numbers のずるい解き方
ABC100 B問題 Ringo's Favorite Numbers のズルい解き方を解説します。
DとNが与えられて、100 で ちょうど D 回割りきれる正の整数のうち、N番目に小さい数を求める問題です。
Dは0か1か2、Nはの整数です。
サンプルを見ていくと式が浮かびました。
の時、100で割り切れない数は1, 2, 3, 4, 5, 6となっていて、5番目に小さい数は5。
の時、100で1回割り切れる数は100, 200, 300, 400, 500, なので11番目に小さい数は1100。
なので答えはということが推測できます。
ただし、気をつけないといけないのはの時です。
の場合、先程の式だと100が答えになってしまいますが、100は1回割り切れてしまうので、101が正解です。
なのでN = 100の時だけ答えはとなります。
このN = 100のケースに早く気づければ楽なのかなと思います。
D, N = map(int, input().split()) # N が100の時だけ割り切れるので101にする if N == 100: N = 101 ans = (100 ** D) * N print(ans)
ちゃんとした数学的な発想の解き方は公式解説を見てください。
この解き方は公式解説でズルい解き方と言われてました。。。すみません。