Не могу решить задачу. C++
Результат моим кодом 0.528781 при вводе 1.24 0.0001.
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double x, eps, k_1, k, t = 1, factorial = 1;
cin >> x >> eps;
cout.precision(6);
cout << fixed;
k = 1-x; // k -ый элемент
while(true) {
++t; //счётчик
factorial *= t;
k_1 = pow(x, t)/factorial - pow(x, (t+1))/(factorial*(t+1)) + k; // k+1 -ый элемент
if (abs(k_1 - k) < eps) {
cout << k << endl;
return 0;
}
k = k_1;
}
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Я уже эти ряды скоро с закрытыми глазами писать буду... :)
double Func(double x, double eps)
{
double term = 1, sum = term;
for(int k = 1; abs(term) > eps; ++k)
sum += term *= -x/k;
return sum;
}
Функция, вычисляющая ваш ряд для x с точностью eps. Кстати, этот ряд — exp(-x).
