AtCoder ABC 156 B – Digits Python解説
Digits
整数 N を K 進数で表したとき、何桁になるかを求めてください。
AtCoder Beginner Contest 「Digits」
10進数を2進数に変換する方法を覚えていますか?
2進数に変換するには、変換したい10進数を商が0になるまで割りつづけて商と余りを求めていき、余りをつなげていくと2進数にします。
ただ、今回の問題はK進数にしたときの値ではなく、単純に桁数だけが求められています。桁数だけならKで整数Nを割れる回数+1が答えとなります。
n, k = map(int, input().split())
cnt = 0
while n >= k:
cnt += 1
n /= k
print(cnt + 1)
K進数に変換したあとlen関数で桁数を求めてみる。
n, k = map(int, input().split())
ans = ""
while n >= 1:
ans = str(n % k) + ans
n //= k
print(len(ans))