помогите решить в паскале пожалуст
дано натуральное число n(n<9999). Узнать есть ли это число палиндромом, тоесть таким числом, которое слева на право и справа на лево читается одинаково ( все четыре цыфры засчитываются; например, 0110 )
дано натуральное число n(n<9999). Узнать есть ли это число палиндромом, тоесть таким числом, которое слева на право и справа на лево читается одинаково ( все четыре цыфры засчитываются; например, 0110 )
решил как то примитивно. . 2 года не заходил в паскаль) ) число 0110 паскаль воспринимает как 110, то есть трехзначное. .
program ildar;
var a,b,c:integer;
begin
readln(a);
if a<10 then writeln('pollindrom')else {одно число типа палиндром) ) или напиши там нельзя}
begin
if ((a>=10) and (a<100)) then {проверка двухзначных чисел}
if (a div 10)=(a mod 10) then writeln ('polindrom') else writeln('net')
else begin
if ((a>=100) and (a<1000)) then {проверка трехзначных, может тут тебе че нить натворить чтоб решить проблему с 0110}
if (a div 100)=(a mod 10) then writeln ('polindrom') else writeln ('net')
else begin if b:=((a div 100) mod 10); c:=((a div 10) mod 10); if (((a div 1000)=(a mod 10)) and (b=c)) {тут четырехзначные, Б и С коэфф нужны чтоб взять 3ий и 2ой символы))) }
then writeln ('polindrom') else writeln ('net');
end;
end;
end;
end.
если тебе надо только четырех знаки проверять то пиши в личку, так проще, и число 0110 можно будет проверить