Рассчитайте e ^ x с учетом значений эпсилона и x в c - PullRequest
0 голосов
/ 21 марта 2020
long double power1(double x, int n) {
    long double power = 1;
    int i;
    for(i=1; i<=n; i++) {
        power *= i;
    }
    return power;
}

long long int factorial(long long n) {
    long long int pr = 1;
    long long int i;
    for(i=1; i<=n; i++){
        pr *= i;
    }
    return pr;
}

double myExp(double x, double epsi) {
    double sum=(double)1;
    int i;

    while(power1(x, i)/((1.0)*factorial(i)) - epsi <= 0) {
        sum += power1(x, i)/(1.0*factorial(i));
        i++;
    }
    return sum;
}

int main(int argc, char *argv[]) {
    system("cls");
    double x, epsi;
    int n;

    x=1.5;
    epsi=0.00001;
    n=1000;

    printf("exp(%.lf,%f)=%f\n", x, epsi, myExp(x, epsi));
    printf("\n");
}

Мне нужна помощь, чтобы исправить мою экспоненциальную функцию e^x, учитывая значения epsi и x, чтобы abs(x^n/n!) <= epsi, где n - первое целое число, удовлетворяющее условию. Кажется, пока l oop не работает. Когда я ввожу 1.5, желаемое значение равно 4.481689, но результат равен 1.0000.

...