Разработать рекурсивный метод для вычисления значения двойного факториала X! - C (СИ)

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

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

Если X - нечетное, то X!! = 1*3*5*...*X; если X - четное, то X!! = 2*4*6*...*X. Обязательно использовать рекурсивные вызовы, на вход принимает значение X

Решение задачи: «Разработать рекурсивный метод для вычисления значения двойного факториала X!»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. unsigned long ff(unsigned long n) {
  4.     return ( n > 1 ) ? n * ff(n - 2) : 1;
  5. }
  6.  
  7. int main(void) {
  8.     unsigned long n;
  9.    
  10.     while ( printf("N = ") && scanf("%lu", &n) == 1 )
  11.         printf("N!! = %lu\n", ff(n));
  12.        
  13.     return 0;
  14. }

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

  1. Включаем стандартную библиотеку ввода-вывода
  2. Определяем функцию с именем ff, которая принимает целочисленный аргумент типа unsigned long и возвращает результат вычисления двойного факториала
  3. Используем тернарный оператор для определения базового случая рекурсии: если n больше 1, то вызываем функцию ff, передавая в нее n-2 в качестве аргумента, иначе возвращаем 1
  4. В функции main считываем число N с помощью функции scanf и выводим его на экран с помощью функции printf
  5. Используем цикл while для повторного считывания числа N до тех пор, пока пользователь не введет ноль или не отправит сигнал конца файла
  6. Вызываем функцию ff, передавая в нее считанное значение n, и выводим результат вычисления двойного факториала на экран с помощью функции printf
  7. Возвращаем 0 в конце функции main, чтобы операционная система знала, что программа успешно завершилась

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


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

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

7   голосов , оценка 3.286 из 5

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

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

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