Для заданной точности eps написать функцию вычисления приближенного значения e

помогите решить задачу: Для заданной точности eps написать функцию вычисления приближенного значения e^x по формуле 1+x^2/2!+x^3/3!+...x^k/k!

Где |x^k/k!| <= eps введите сюда описание изображения Вот мой код, в цикл уходит, не понимаю, как работать должно вообще, подскажите, в какую сторону копать

    #include <iostream>
    #include "math.h"
    using namespace std;
    
    int fct(int nmb)
    {
        int f = 1;
        for(int i=1; i<=nmb; ++i) f *= i;
        return f;
    }
    
    double expnt(double x, double eps) {
        double res = 1;
        for(int k = 2; (abs(pow(x,k) / fct(k))) <= eps; k++)
            res += pow(x,k) / fct(k);
        return res;
    }

int main()
{   
    double eps, x;
    cout << "x= ";
    cin >> x;
    cout << "eps= ";
    cin >> eps;
    
    cout << "e^x ~= " << expnt(x, eps); 

    return 0;
}        

Ответы (1 шт):

Автор решения: Harry
double expnt(double x, double eps)
{
    double sum = 1.0, term = 1.0;
    for(int n = 1; abs(term) > eps; ++n) sum += term *= x/n;
    return sum;
}

У вас неверная формула + скорее всего факториал переполняется. Вот верная формула для exp(x):

введите сюда описание изображения

→ Ссылка