Для n > 0 цифровой корень равен 1 + (n − 1) mod 9; для нуля ответ 0. Формула следует из сохранения остатка по модулю 9 при суммировании цифр.
Определение цифрового корня заданного числа
Для n > 0 цифровой корень равен 1 + (n − 1) mod 9; для нуля ответ 0. Формула следует из сохранения остатка по модулю 9 при суммировании цифр.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Цифровой корень – это результат многократного суммирования цифр числа до получения одноцифрового результата. Дано неотрицательное целое n. Необходимо последовательно складывать все его цифры; если полученная сумма состоит более чем из одной цифры, процесс повторяется, пока не останется однозначное число. На вход подаётся неотрицательное целое число. Примеры: 16 --> 1 + 6 = 7 942 --> 9 + 4 + 2 = 15 --> 1 + 5 = 6 132189 --> 1 + 3 + 2 + 1 + 8 + 9 = 24 --> 2 + 4 = 6 493193 --> 4 + 9 + 3 + 1 + 9 + 3 = 29 --> 2 + 9 = 11 --> 1 + 1 = 2
Ответ
Для n > 0 цифровой корень равен 1 + (n − 1) mod 9; для нуля ответ 0. Формула следует из сохранения остатка по модулю 9 при суммировании цифр.
function digitalRoot(n) {
if (!Number.isSafeInteger(n) || n < 0) throw new RangeError('Некорректное число');
return n === 0 ? 0 : 1 + (n - 1) % 9;
}
Примеры дают 7, 6, 6 и 2. Положительное число, кратное девяти, имеет корень 9, а не 0 — поэтому используется сдвиг на единицу. Для безопасных целых Number время O(1). Большие числа нужно передавать как BigInt либо десятичную строку, не теряя цифры при преобразовании.