Дано число типа byte. Проверить, является ли палиндромом его двоичное представление с...

0 голосов
69 просмотров

Дано число типа byte. Проверить, является ли палиндромом его двоичное
представление с учетом того, что сохранены старшие нули. Пример таких чисел: 102 (т. к. 102 =
0110 01102, а это палиндром), 129 (129 = 1000 00012) и т. д.


Информатика (32 баллов) | 69 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

Program p_3;
var
     n, a, b, c, d: byte;
begin
readln(n);
a := n mod 2;
n := n div 2;
b := n mod 2;
n := n div 2;
c := n mod 2;
n := n div 2;
d := n mod 2;
n := n div 2;
a := 8 * a + 4 * b + 2 * c + d;
writeln(n = a)
end.

(7.7k баллов)
0 голосов
var a: array of integer;
var i: byte;
var b: boolean;
begin
b:=true;
setlength(a,8);
var n:=0;
writeln('Введите число: ');
readln(i);

var d:=i;
while i<>0 do
begin
a[n]:=i mod 2;
i:=i div 2;
inc(n);
end;
setlength(a,n);
for  i:=0 to n-1 do
begin
if n=0 then
begin
write(0);
break;
end;
swap(a[i],a[n-1]);
write(a[i]);
end;
for i:=1 to n-1 do
begin
if n=0 then
break;
if a[i-1]<>a[i] then
begin
b:=false;
break;
end;
end;
if (b=false) then
write(' = ',d,' это не палиндром')
else 
write(' = ',d,' это палиндром');
end.
(3.6k баллов)
0

нужно var d:=i; поставить после readln(i);