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

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

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

Помогите сделать программу по заданию: Описать функцию Fact2(N) целого типа, вычисляющую значение "двойного факториала": N!! = 1•3•5•...•N, если N — нечетное, N!! = 2•4•6•...•N, если N — четное (N > 0 — параметр целого типа). С помощью этой функции вычислить двойные факториалы 5 случайных чисел из диапазона [3, 12]. Буду очень благодарен за использование команд начального уровня знаний С. Заранее спасибо!

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

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. int f(int x){
  6.     long long ans = 1;
  7.     for (int i = 2 - (x & 1); i <= x; i += 2)
  8.         ans *= i;
  9.     return ans;
  10. }
  11.  
  12. int main(){
  13.     srand(time(0));
  14.     for (int i = 0; i < 5; ++i){
  15.         int x = (rand() % 10) + 3;
  16.         printf("%d ", f(x));
  17.     }
  18.     return 0;
  19. }

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

  1. Подключение необходимых библиотек для работы с файлами, стандартными функциями и генерацией случайных чисел.
  2. Определение функции с именем f, которая принимает целочисленный аргумент x и возвращает результат вычисления двойного факториала.
  3. Переменная ans инициализируется единицей.
  4. В цикле for перебираются все четные числа от 2 до x (исключая 1), затем умножаются на ans.
  5. Возвращается значение переменной ans.
  6. В функции main инициализируется генератор случайных чисел с помощью функции srand(time(0)).
  7. В цикле for генерируются случайные числа от 3 до 13 (включительно) и передаются в функцию f.
  8. Каждое вычисленное значение выводится на экран с помощью функции printf.
  9. Программа завершается без ошибок при достижении условия выхода из цикла for.

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


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

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

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

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

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

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