![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Aigana |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Продвинутые Сообщений: 8 Регистрация: 29.9.2011 Город: Казахстан, Алматы Учебное заведение: МУИТ(IITU) Вы: студент ![]() |
Вводится число. Напечатать YES, если оно является степенью двойки, NO - иначе.
Ввод 1 Ввод 2 8 22 Вывод 1 Вывод 2 YES NO |
![]() ![]() |
Sergio Ramos |
![]()
Сообщение
#2
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 86 Регистрация: 16.11.2010 Город: Saratov ![]() |
Можно поизвращаться с побитовыми операциями
#include "iostream" using namespace std; int main () { int n; cin >> n; if (!(n&(n-1))) cout << "YES"; else cout << "NO"; return 0;} При побитовом "и" происходит перемножение значений (единиц и нулей) соответствующих разрядов в двоичной записи числа. Например, дано число 4. в двоичной сс имеет запись 100; 4 x 3 = 100 x 011 = 0 => 4 - степень 2-ки. Или еще пример, 7, в 2 сс 7 = 111. 7 х 6 = 111 x 110 = 110 = 6. 6 != 0 => 7 не степень 2-ки. |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 27.5.2025, 21:57 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru