Official

E - 10 の n 乗/<=10^n Editorial by nok0


桁数が \(k\) の整数 \(X\) に対して、以下が成り立ちます。

\[10^{k-1} \leq X < 10^{k}\]

そのため、基本的には \(X\) の桁数が答えとなります。例外は、\(X\) がちょうど \(10\) の累乗で表される時です。

これは、\(X\) を文字列として見たときに、先頭の文字が \(1\) で残りの文字が全て \(0\) であることと同値です。

以上を実装することでこの問題を解くことができます。Python など、多倍長整数を用いる言語であれば、全てを整数で実装することもできます。

実装例(Python):

import sys
sys.set_int_max_str_digits(0)

x = int(input())
res = len(str(x))
if x == 10**(res-1):
    res -= 1
print(res)

posted:
last update: