Дано число является ли оно палиндромом в 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.
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;
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
Пример вывода:
Палиндром
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
Думаю, вопрос исчерпан. Останемся при своих мнениях и завершим.
Новые вопросы
Биология,
2 года назад
Английский язык,
2 года назад
Информатика,
9 лет назад
Физика,
10 лет назад
Алгебра,
10 лет назад