Предмет: Информатика, автор: gimliT

Дано число является ли оно палиндромом в Pascal. Если можно с объяснением каждого шага.

Ответы

Автор ответа: APALoff
0
Function isPali(A : Longint) : Boolean;
Var B : Longint;
Begin
  B:=1;
  While B<A do B:=B*10;
  B:=B div 10;
  If A>9 then isPali:=((A div B)=(A mod 10)) and isPali(A mod B div 10) else isPali:=True;
end;

Var N : Longint;
Begin
  Readln(N);
  Writeln(isPali(N));
end.

Автор ответа: gimliT
0
Begin
B:=1;
While B<A do B:=B*10;
B:=B div 10;
If A>9 then isPali:=((A div B)=(A mod 10)) and isPali(A mod B div 10) else isPali:=True;
end;
Автор ответа: gimliT
0
можно подробно объяснить
Автор ответа: APALoff
0
в этом куске кода ищется порядок (сотня, тысяча и т.п.), соответствующий заданному числу и используется для получения его первой цифры. Например для 1234 порядком будет 1000 - целочисленно поделив 1234 на 1000 - получим его первую цифру "1". А дальше идёт рекурсивный способ проверки равенства первой и последней цифры.
Автор ответа: Gleb1Kosyrev
0
//Pascal ABC.NET Версия 2.2 Сборка 790
var s:string;
i,s1:integer;
begin;
readln(s1);  //вводим число
str(s1,s);
for i:=1 to length(s) div 2+length(s) mod 2 do
{цикл от начала и до середины/центра в зависимости от чётности}
begin;
   if s[i]<>s[length(s)+1-i] then
{если 1 символ не равен последнему, второй-предпоследнему и т.д.}
   begin;
        writeln('Не палиндром');
        exit; //если это условие хоть раз верно-программа завершается
   end;
end;
writeln('Палиндром'); //если условие не разу не оказалось верным
end.

Пример ввода:
121
Пример вывода:
Палиндром
Автор ответа: APALoff
0
ну тут возникает еще одно 'если', указанная Вами функция присуща не всем диалектам языка Паскаль... в отличии от функции STR
Автор ответа: Gleb1Kosyrev
0
Наслаждайтесь val()
Автор ответа: APALoff
0
)) это обратное преобразование VAL тут не нужен
Автор ответа: APALoff
0
Я понимаю, что Ваш метод может быть в итоге не принципиален в рамках конкретной задачи.... но я за то, чтобы решать именно в рамках поставленных условий.
Автор ответа: Gleb1Kosyrev
0
Думаю, вопрос исчерпан. Останемся при своих мнениях и завершим.
Похожие вопросы