Методом рекурсии определить является ли натуральное число палиндромом - 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;
Объяснение кода листинга программы
- Задана функция isPali, которая принимает целочисленный аргумент A и возвращает логическое значение True, если число A является палиндромом, и False в противном случае.
- В функции isPali объявлена переменная B типа Longint со значением 1.
- В цикле while происходит умножение переменной B на 10 до тех пор, пока значение переменной B не станет меньше или равным аргументу A.
- Затем значение переменной B делится на 10 и присваивается переменной B значение частного от деления.
- Если значение переменной A больше 9, то выполняется рекурсивный вызов функции isPali с аргументом (A mod 10) и результат этого вызова сравнивается с результатом вычисления (A div B). Если значения совпадают, то возвращается True, иначе выполняется еще один рекурсивный вызов функции isPali с аргументом (A mod B div 10).
- Если значение переменной A меньше или равно 9, то возвращается True без выполнения рекурсивных вызовов.
- Значение переменной A не используется в цикле while и рекурсивных вызовах функции isPali, поэтому ее можно заменить на любое другое натуральное число без изменения результата выполнения функции.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д