Функция, вычисляющая значение "двойного факториала" - C (СИ)
Формулировка задачи:
Помогите сделать программу по заданию:
Описать функцию Fact2(N) целого типа, вычисляющую значение "двойного факториала": N!! = 1•3•5•...•N, если N — нечетное, N!! = 2•4•6•...•N, если N — четное (N > 0 — параметр целого типа). С помощью этой функции вычислить двойные факториалы 5 случайных чисел из диапазона [3, 12].
Буду очень благодарен за использование команд начального уровня знаний С.
Заранее спасибо!
Решение задачи: «Функция, вычисляющая значение "двойного факториала"»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <time.h> int f(int x){ long long ans = 1; for (int i = 2 - (x & 1); i <= x; i += 2) ans *= i; return ans; } int main(){ srand(time(0)); for (int i = 0; i < 5; ++i){ int x = (rand() % 10) + 3; printf("%d ", f(x)); } return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами, стандартными функциями и генерацией случайных чисел.
- Определение функции с именем f, которая принимает целочисленный аргумент x и возвращает результат вычисления
двойного факториала
. - Переменная ans инициализируется единицей.
- В цикле for перебираются все четные числа от 2 до x (исключая 1), затем умножаются на ans.
- Возвращается значение переменной ans.
- В функции main инициализируется генератор случайных чисел с помощью функции srand(time(0)).
- В цикле for генерируются случайные числа от 3 до 13 (включительно) и передаются в функцию f.
- Каждое вычисленное значение выводится на экран с помощью функции printf.
- Программа завершается без ошибок при достижении условия выхода из цикла for.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д