Код Middle Биты обновлено
Степень двойки
Условие
Является ли положительное число степенью двойки?
Примеры
isPowerOfTwo(1) // true
isPowerOfTwo(16) // true
isPowerOfTwo(3) // false
Как подойти
Приём n & (n − 1) убирает младший установленный бит. Если после этого остался ноль, бит был единственным. Проверка n > 0 обязательна: для нуля выражение тоже даёт ноль. Тот же приём считает единичные биты за число единиц, а не за разрядность.
Подсказки: 2
- У степени двойки ровно один единичный бит.
- Вычитание единицы превращает этот бит в ноль, а все младшие - в единицы.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.