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
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.
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)