
Дано натуральное число N. Выведите слово YES, если число N является точной степенью двойки, или слово NO в противном случае. Операцией возведения в степень пользоваться нельзя!
Ответы на вопрос

Чтобы определить, является ли данное натуральное число точной степенью двойки, можно воспользоваться логическим анализом битовой структуры числа. Число является точной степенью двойки, если оно может быть представлено в виде , где — неотрицательное целое число. Это возможно тогда и только тогда, когда и в его двоичном представлении присутствует ровно одна единица.
Простое решение задачи без использования операции возведения в степень:
Проверка остатка при делении на 2: Повторно делите число на 2, проверяя каждый раз, делится ли оно без остатка. Если в итоге вы получите 1 и при этом все промежуточные деления были без остатка, значит, — точная степень двойки. В противном случае — нет.
Использование побитовых операций: Для проверки можно использовать свойство двоичных чисел. Если — точная степень двойки, то выполняется условие:
Здесь «&» — это побитовая операция «И». Это работает потому, что в двоичном представлении точной степени двойки есть только одна единица, а обнуляет эту единицу и выставляет все младшие разряды в 1.
Алгоритм проверки:
- Если , сразу выводим
NO
, так как степень двойки — это только положительное число. - Применяем битовую проверку или последовательное деление.
- Если , выводим
YES
, иначеNO
.
Пример кода на Python:
Объяснение работы:
- Если (двоично:
1000
), тогда (двоично:0111
). При побитовом «И» получится , что подтверждает, что — точная степень двойки. - Если (двоично:
1010
), тогда (двоично:1001
). При побитовом «И» получится , что не равно 0, значит, не является степенью двойки.
Этот подход эффективен, так как использует минимальное количество операций.
Похожие вопросы









Топ вопросов за вчера в категории Информатика









Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili