For 20. Дано целое число N (> 0). Используя один цикл, найти сумму
\(1! + 2! + 3! + ... + N!\)
(выражение N! — N–факториал — обозначает произведение всех целых чисел от 1 до N : \(N! = 1 \cdot 2 \cdot ... \cdot N\)). Чтобы избежать целочисленного переполнения, проводить вычисления с помощью вещественных переменных и вывести результат как вещественное число.

Решение на Python 3

import random

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

F = 1.0
S = 0.0
for i in range(1,N+1):
F *= i
S += F
print(i," : ", F," : ", S)
print("Result:",S)

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

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

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

double f = 1, s = 0;
for(int i = 1; i <= N; i++) {
f *= i;
s += f;
cout << i << " : "<< f << " : "<< s << endl;
}
cout << "Result: " << s << endl;
return 0;
}