Описать рекурсивную функцию целого типа, вычисляющую значение двойного факториала - 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
- Вывод сообщения об успешном выполнении программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д