Problema
Suma los dígitos de n. Si el resultado tiene más de un dígito, vuelve a sumar sus dígitos. Repite este proceso hasta que solo quede un dígito.
Implementa digital_root(n).
Entrada
n: Un número entero positivo.
Salida
Devuelve el dígito final resultante.
Restricciones
1 ≤ n ≤ 10¹⁸
Ejemplos
Entrada:
n = 999
Salida esperada:
expected = 9
Entrada:
long long n = 999;
Salida esperada:
long long expected = 9;
Entrada:
long n = 999;
Salida esperada:
long expected = 9;
Explicación
9 + 9 + 9 = 27, luego 2 + 7 = 9.
Entrada:
n = 38
Salida esperada:
expected = 2
Entrada:
long long n = 38;
Salida esperada:
long long expected = 2;
Entrada:
long n = 38;
Salida esperada:
long expected = 2;
Explicación
3 + 8 = 11, luego 1 + 1 = 2.
Cómo abordarlo
Inténtalo primero por tu cuenta y luego abre las pistas una a una.
Pista 1
Sumar dígitos repetidamente acaba reduciendo el número a un solo dígito.
Pista 2
Puedes simular el proceso de suma repetida hasta que el valor sea menor que 10.
Pista 3
Cuidado con entradas muy grandes; el proceso es simple, pero las pasadas repetidas por los dígitos son el trabajo principal.
Complejidad esperada
tiempo O(d log n), espacio extra O(1)