Answer

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

Report Page