Médio 0 resolvidos 0% de aceitação

Raiz Digital

Some os dígitos repetidamente até restar apenas um dígito.

O que você vai aprender

  • Somar dígitos até sobrar apenas um
  • Combinar um laço interno com uma condição de parada externa
  • Perceber o atalho com módulo 9

Problema

Ver original (inglês)

Some os dígitos de n. Se o resultado tiver mais de um dígito, some os dígitos novamente. Repita até restar apenas um dígito.

Implemente digital_root(n).

Entrada

n: Um inteiro positivo.

Saída

Retorne o dígito final único.

Restrições

1 ≤ n ≤ 10¹⁸

Exemplos

Exemplo 1
Entrada:
n = 999

Saída esperada:
expected = 9
Entrada:
long long n = 999;

Saída esperada:
long long expected = 9;
Entrada:
long n = 999;

Saída esperada:
long expected = 9;

Explicação

9 + 9 + 9 = 27, depois 2 + 7 = 9.

Exemplo 2
Entrada:
n = 38

Saída esperada:
expected = 2
Entrada:
long long n = 38;

Saída esperada:
long long expected = 2;
Entrada:
long n = 38;

Saída esperada:
long expected = 2;

Explicação

3 + 8 = 11, depois 1 + 1 = 2.

Como abordar

Tente sozinho primeiro e depois abra uma dica de cada vez.

Dica 1

Somar dígitos repetidamente acaba reduzindo o número a um único dígito.

Dica 2

Você pode simular o processo de soma repetida até o valor ficar menor que 10.

Dica 3

Cuidado com entradas muito grandes; o processo é simples, mas as várias passagens pelos dígitos são o principal trabalho.

Complexidade esperada

O(d log n) tempo, O(1) espaço extra

Aprenda com outros

Soluções da comunidade

Ainda não há soluções publicadas. Resolva este desafio para compartilhar a primeira.