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