Answer
t.me/js_testОтвет:
function digitalRoot(n) {
if (n < 10) return n;
return digitalRoot(
n
.toString()
.split("")
.reduce((acc, c) => acc + Number(c), 0)
);
}
Объяснение:
В данном решении используется рекурсивный подход. Для начала прописываем условие выхода из рекурсии (если n меньше 10 то возвращаем n). Если же это условие не выполняется то рекурсивно вызываем нашу функцию только передаём туда новую n. А новая n равна сумме всех чисел старой n.
Код для проверки:
function digitalRoot(n) {
if (n < 10) return n;
return digitalRoot(
n
.toString()
.split("")
.reduce((acc, c) => acc + Number(c), 0)
);
}
console.log(digitalRoot(16));
console.log(digitalRoot(942));
console.log(digitalRoot(132189));