Рекурсивная функция для вычисления двойного факториала - Turbo Pascal
Формулировка задачи:
программа, которая содержит рекурсивную функцию, которая вычисляет:
Р (п) = 1 * 3 * 5 * 7 * 9 * ...
Решение задачи: «Рекурсивная функция для вычисления двойного факториала»
textual
Листинг программы
function p(n: integer): extended; begin if n >= 2 then p := n * p(n - 2) else p := 1 end; var n: integer; begin repeat write('n in [0..29]; n = '); readln(n) until (n >= 0) and (n <= 29); write(n, '!! = ', p(n):0:0); readln end.
Объяснение кода листинга программы
- В функции
p(n: integer)
определяется рекурсивная функция для вычисления двойного факториала числаn
. - Если
n
больше или равно 2, то функция вызывает саму себя с аргументомn-2
и умножает результат наn
. - Если
n
меньше 2, то функция возвращает 1. - В переменной
n
хранится число, вводимое пользователем. - В цикле
repeat
происходит чтение значенияn
с экрана и его вывод на экран. - Цикл продолжается до тех пор, пока
n
больше или равно 0 и меньше или равно 29. - После окончания цикла значение
n
передается в функциюp(n)
. - Выводится значение
n
и результат вычисления двойного факториала с помощью функцииp(n)
. - Затем происходит чтение ответа от пользователя.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д