Описать рекурсивную функцию целого типа, вычисляющую значение двойного факториала - 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;
- }
Объяснение кода листинга программы
- Подключение необходимых библиотек: iostream, cmath
- Определение функции Factorial(int value) для вычисления факториала числа
- Проверка условия: если значение числа равно 1 или 2, возврат этого значения
- Проверка условия: если значение числа больше 2, возврат произведения числа и значения функции Factorial(value — 2)
- Проверка условия: если значение функции Factorial(value) не равно 0, вывод значения факториала на экран
- Вывод сообщения об ошибке в случае неправильного ввода
- Ввод значения числа с клавиатуры
- Вызов функции Factorial(value) и присвоение результата переменной factr
- Проверка значения переменной factr
- Вывод сообщения об успешном выполнении программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д