Код Middle Массивы и хеш-таблицы обновлено
Счастливое число
Условие
Число счастливое, если повторное возведение его цифр в квадрат и суммирование в итоге даёт 1. Если процесс зациклился - число несчастливое.
Примеры
isHappy(19) // true
isHappy(2) // false
isHappy(1) // true
Как подойти
Ключевое наблюдение: последовательность обязана либо прийти к единице, либо войти в цикл, потому что суммы квадратов цифр ограничены сверху. Отсюда Set посещённых как условие выхода. Альтернатива без памяти - алгоритм Флойда с быстрым и медленным указателем, применённый к этой последовательности; назвать его стоит.
Подсказки: 3
- Процесс либо доходит до единицы, либо зацикливается - третьего нет.
- Зацикливание ловится множеством уже виденных чисел.
- Умножение строки на строку в JS сработает, но полагаться на это не стоит.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.