While 6. Дано целое число N (> 0). Найти двойной факториал N:
\(N!! = N \cdot (N - 2) \cdot (N - 4) \cdot ...\)
(последний сомножитель равен 2, если N — четное, и 1, если N — нечетное). Чтобы избежать целочисленного переполнения, вычислять это произведение с помощью вещественной переменной и вывести его как вещественное число.

Решение на Python 3

import random

N = random.randrange(1,20)
print('N = ', N)

if N%2 == 0:
L = 2
else:
L = 1

F = 1
while N >= L:
F *= N
N -= 2

print("Двойной факториал: ", F)

Решение на C++

#include <bits/stdc++.h>
using namespace std;

int main() {
srand((int)time(0));
int N = rand() % 20 + 1;
N = 8;
cout << "N = " << N << endl;

int L;
if(N % 2 == 0)
L = 2;
else
L = 1;

long long F = 1;
while(N >= L) {
F *= N;
N -= 2;
}

cout << "N!! = " << F << endl;

return 0;
}