Методом рекурсии определить является ли натуральное число палиндромом - Free Pascal

Узнай цену своей работы

Формулировка задачи:

С помощью рекурсии определить является ли натуральное число палиндромо.

Решение задачи: «Методом рекурсии определить является ли натуральное число палиндромом»

textual
Листинг программы
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;

Объяснение кода листинга программы

  1. Задана функция isPali, которая принимает целочисленный аргумент A и возвращает логическое значение True, если число A является палиндромом, и False в противном случае.
  2. В функции isPali объявлена переменная B типа Longint со значением 1.
  3. В цикле while происходит умножение переменной B на 10 до тех пор, пока значение переменной B не станет меньше или равным аргументу A.
  4. Затем значение переменной B делится на 10 и присваивается переменной B значение частного от деления.
  5. Если значение переменной A больше 9, то выполняется рекурсивный вызов функции isPali с аргументом (A mod 10) и результат этого вызова сравнивается с результатом вычисления (A div B). Если значения совпадают, то возвращается True, иначе выполняется еще один рекурсивный вызов функции isPali с аргументом (A mod B div 10).
  6. Если значение переменной A меньше или равно 9, то возвращается True без выполнения рекурсивных вызовов.
  7. Значение переменной A не используется в цикле while и рекурсивных вызовах функции isPali, поэтому ее можно заменить на любое другое натуральное число без изменения результата выполнения функции.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.867 из 5
Похожие ответы