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

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

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

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

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

textual
Листинг программы
  1. Function isPali(A : Longint) : Boolean;
  2. Var B : Longint;
  3. Begin
  4.   B:=1;
  5.   While B<A do B:=B*10;
  6.   B:=B div 10;
  7.   If A>9 then isPali:=((A div B)=(A mod 10)) and isPali(A mod B div 10) else isPali:=True;
  8. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы