For 28. Дано вещественное число X (|X| < 1) и целое число N (> 0). Найти значение выражения
\(1 + X/2 - 1 \cdot X^2/(2 \cdot 4) + 1 \cdot 3 \cdot X^3/(2 \cdot 4 \cdot 6) - ... + \\
+ (-1)^{N - 1} \cdot 1 \cdot 3 \cdot ... \cdot (2 \cdot N  - 3) \cdot X^N/(2 \cdot 4 \cdot ... \cdot (2 \cdot N)).\)
Полученное число является приближенным значением функции \(\sqrt{1+X}\).

Решение на Python 3

import math
X = -0.9
N = 100
print('X = ', X)
print('N = ', N)

p = X/2
S = 1 + X/2
k = 2
for i in range(2,N+1):
k += 2
p *= (-1)*(k-3)/k * X
S += p
print(i," : ",k," : ",p," : ",S)

print("Result:")
print(S)
print("sqrt(1+x):")
print(math.sqrt(1+X))

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

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

int main() {
srand((int)time(0));
int N;
N = rand() % 30 + 1;
//N = 30;
double X = (rand() % 200 - 100) / 100.0;
//X = 0.1;

double p = X/2.0;
double s = 1 + X/2.0;
double k = 2.0;
for(int i = 2; i <= N; i++) {
k += 2;
p *= (-1)*(k-3)/k*X;
s += p;
cout << i << " : "<< p << " : "<< s << endl;
}
cout << "Number N: " << N << endl;
cout << "Number X: " << X << endl;
cout << "Number X+1: " << X+1 << endl;
cout << "Result: " << s << endl;
cout << "sqrt(" << X+1 <<") = " << sqrt(X+1) << endl;

return 0;
}