Intermedio 0 resueltos 0% de aceptación

Raíz Digital

Suma los dígitos repetidamente hasta que quede un solo dígito.

Lo que aprenderás

  • Sumar dígitos hasta que quede uno solo
  • Combinar un bucle interno con una condición de parada externa
  • Descubrir el atajo con módulo 9

Problema

Ver original (inglés)

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

Ejemplo 1
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.

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

Aprende de otros

Soluciones de la comunidad

Aún no hay soluciones publicadas. Resuelve este reto para compartir la primera.