Описать рекурсивную функцию целого типа, вычисляющую значение двойного факториала - C (СИ)

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

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

Описать рекурсивную функцию целого типа, вычисляющую значение двойного факториала: N!! = 1•3•5•...•N, если N – нечётное, N!! = 2•4•6•...•N, если N – чётное. (N>0 целое). При N<=0 вывести сообщение об ошибке. Зарание спасибо

Решение задачи: «Описать рекурсивную функцию целого типа, вычисляющую значение двойного факториала»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
unsigned Factorial(int value)
{
    if(value == 1 || value == 2) return value;
    else if(value > 2) return value * Factorial(value - 2);
    else return 0;
}
 
int main()
{
    int value, factr;
 
    printf("enter value: ");
    scanf("%i", &value);
    
    if(factr = Factorial(value))
        printf("factorial: %i\n", factr);
    else
        printf("input error");
    
    system("pause");
 
    return 0;
}

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

  1. Подключение необходимых библиотек: iostream, cmath
  2. Определение функции Factorial(int value) для вычисления факториала числа
  3. Проверка условия: если значение числа равно 1 или 2, возврат этого значения
  4. Проверка условия: если значение числа больше 2, возврат произведения числа и значения функции Factorial(value — 2)
  5. Проверка условия: если значение функции Factorial(value) не равно 0, вывод значения факториала на экран
  6. Вывод сообщения об ошибке в случае неправильного ввода
  7. Ввод значения числа с клавиатуры
  8. Вызов функции Factorial(value) и присвоение результата переменной factr
  9. Проверка значения переменной factr
  10. Вывод сообщения об успешном выполнении программы

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


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

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

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