def digitLength(n):
dlen = 1
high = 9
while n > high:
dlen += 1
high = 10*high + 9
return dlen fn digit_length_recursive(input: usize) -> usize {
if input == 0 {
0
} else {
1 + digit_length_recursive(input / 10)
}
}
fn digit_length(input: usize) -> usize {
std::cmp::max(digit_length_recursive(input), 1)
} def digit_length(n):
totlen = 0
n += not n
while n > 0:
klen = 1
k = 10
while n > k * k:
k = k * k
klen *= 2
n = n // k
totlen += klen
return totlen