Torna alle sfide
Media 0 risolte 0% di accettazione

Radice Digitale

Somma ripetutamente le cifre finché non rimane una sola cifra.

Cosa imparerai

  • Sommare le cifre finché ne resta una sola
  • Combinare un ciclo interno con una condizione di arresto esterna
  • Scoprire la scorciatoia con il modulo 9

Problema

Somma le cifre di n. Se il risultato ha più di una cifra, somma nuovamente le sue cifre. Ripeti finché rimane una sola cifra.

Implementa digital_root(n).

Input

n: Un intero positivo.

Output

Restituisci la cifra finale ottenuta.

Vincoli

1 ≤ n ≤ 10¹⁸

Esempi

Esempio 1
Input:
n = 999

Output atteso:
expected = 9
Input:
long long n = 999;

Output atteso:
long long expected = 9;
Input:
long n = 999;

Output atteso:
long expected = 9;

Spiegazione

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

Esempio 2
Input:
n = 38

Output atteso:
expected = 2
Input:
long long n = 38;

Output atteso:
long long expected = 2;
Input:
long n = 38;

Output atteso:
long expected = 2;

Spiegazione

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

Come affrontarlo

Prova prima da solo, poi apri un suggerimento alla volta.

Suggerimento 1

Sommare ripetutamente le cifre porta alla fine il numero a una sola cifra.

Suggerimento 2

Puoi simulare il processo di somma finché il valore è minore di 10.

Suggerimento 3

Fai attenzione agli input molto grandi; il procedimento è semplice, ma i passaggi ripetuti sulle cifre sono il costo principale.

Complessità attesa

tempo O(d log n), spazio aggiuntivo O(1)

Impara dagli altri

Soluzioni della community

Nessuna soluzione pubblicata. Risolvi questa sfida per condividere la prima.