Рекурсивная функция для вычисления двойного факториала - 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.

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

  1. В функции p(n: integer) определяется рекурсивная функция для вычисления двойного факториала числа n.
  2. Если n больше или равно 2, то функция вызывает саму себя с аргументом n-2 и умножает результат на n.
  3. Если n меньше 2, то функция возвращает 1.
  4. В переменной n хранится число, вводимое пользователем.
  5. В цикле repeat происходит чтение значения n с экрана и его вывод на экран.
  6. Цикл продолжается до тех пор, пока n больше или равно 0 и меньше или равно 29.
  7. После окончания цикла значение n передается в функцию p(n).
  8. Выводится значение n и результат вычисления двойного факториала с помощью функции p(n).
  9. Затем происходит чтение ответа от пользователя.

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


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

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

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