Предмет: Информатика,
автор: gimliT
Дано число является ли оно палиндромом в Pascal. Если можно с объяснением каждого шага.
Ответы
Автор ответа:
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.
Автор ответа:
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;
Автор ответа:
0
можно подробно объяснить
Автор ответа:
0
в этом куске кода ищется порядок (сотня, тысяча и т.п.), соответствующий заданному числу и используется для получения его первой цифры. Например для 1234 порядком будет 1000 - целочисленно поделив 1234 на 1000 - получим его первую цифру "1". А дальше идёт рекурсивный способ проверки равенства первой и последней цифры.
Автор ответа:
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
Пример вывода:
Палиндром
Автор ответа:
0
ну тут возникает еще одно 'если', указанная Вами функция присуща не всем диалектам языка Паскаль... в отличии от функции STR
Автор ответа:
0
Наслаждайтесь val()
Автор ответа:
0
)) это обратное преобразование VAL тут не нужен
Автор ответа:
0
Я понимаю, что Ваш метод может быть в итоге не принципиален в рамках конкретной задачи.... но я за то, чтобы решать именно в рамках поставленных условий.
Автор ответа:
0
Думаю, вопрос исчерпан. Останемся при своих мнениях и завершим.
Похожие вопросы
Предмет: Математика,
автор: vilentarasenko11
Предмет: Математика,
автор: eliseytano
Предмет: Другие предметы,
автор: anel0122
Предмет: Математика,
автор: GirlSummer