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

AtCoderB問題

Posted by cheese