Напишите пожалуйста в Паскале
Говорят, что плохой программист – это тот, кто считает, что в одном килобайте 1000 байт, а хороший программист – это тот, кто полагает, что в одном километре 1024 метра.
Многим эта шутка понятна, так как все знают, что в процессах, связанных с информатикой и компьютерной техникой, фигурирует множество значений, выражаемых степенью двойки, то есть чисел вида 2K, где K – некоторое неотрицательное целое число. Назовем такие числа бинарными. Это такие числа как 2, 4, 8, 16, 32 и т.д. Действительно, когда речь идет о размере памяти или о разрешении экрана монитора, то мы часто наталкиваемся на бинарные числа. Все это связано с принципом хранения информации в памяти ЭВМ.
Задано целое число N. Требуется определить, является ли оно бинарным.
Ответы
Ответ:
program binarnost;
var
n: integer;
begin
readln(n);
if n mod 2 = 1 then
writeln('НЕТ')
else if (n = 2) or (n = -2) then
writeln('ДА')
else
begin
while (n mod 2 = 0) and (n > 2) do
n := n div 2;
if (n = 2) or (n = -2) then
writeln('ДА')
else
writeln('НЕТ');
end;
end.
Объяснение:
var
flag: boolean;
n: integer;
begin
flag := true;
write('Input N: ');
readln(n);
if (n <= 0) then
writeln('No')
else
begin
while (n <> 1) do
if (n mod 2 = 1) then
begin
flag := false;
n := 1;
end
else
n := n div 2;
if (flag = true) then
writeln('Yes')
else
writeln('No')
end;
end.