Решение задачи №692 «Бинарные числа» с ACMP





Решение задачи №692 «Бинарные числа» с ACMP

Условие задачи

Говорят, что плохой программист – это тот, кто считает, что в одном килобайте 1000 байт, а хороший программист – это тот, кто полагает, что в одном километре 1024 метра.

Многим эта шутка понятна, так как все знают, что в процессах, связанных с информатикой и компьютерной техникой, фигурирует множество значений, выражаемых степенью двойки, то есть чисел вида 2K, где K – некоторое неотрицательное целое число. Назовем такие числа бинарными. Это такие числа как 2, 4, 8, 16, 32 и т.д. Действительно, когда речь идет о размере памяти или о разрешении экрана монитора, то мы часто наталкиваемся на бинарные числа. Все это связано с принципом хранения информации в памяти ЭВМ.

Задано целое число N. Требуется определить, является ли оно бинарным.

Входные данные
Входной файл INPUT.TXT содержит единственное целое число N, не превосходящее 10000 по абсолютной величине.

Выходные данные
В выходной файл OUTPUT.TXT выведите YES, если заданное число является бинарным, и NO в противном случае.

#include <iostream>
using namespace std;
main()
{
int n,k=1,i=1;
cin>>n;
if(n>0)
{
while (n%2==0)n/=2;
if (n>1) cout<<"NO";
else cout<<"YES";
}
else cout <<"NO";
}



Условия задач взяты с сайта acmp.ru