Tính e^x

Yêu cầu:

Nhập 1 số c > 0 (sai số) và 1 số thực x rồi tính : e^x = 1 + x/1! + x^2/2! + …+x^n/n!
Tổng được tính với n đủ lớn sao cho |x^n/n!| < c thỏa mãn.

Thuật toán:

– Tương tự như tính sinx, cosx, chúng ta sử dụng vòng lặp for() để giải quyết bài toán này.

Code:

/************************************************************
* Author: VNCODING
* History
* 2014/04/02        first create    VNCODING
*************************************************************/
#include "stdio.h"
#include "conio.h"
#include "math.h"

long giaithua(int N);

void main()
{
    float x; // goc
    float c; // sai so
    float e = 1;
    float exp = 0;
    int n = 0;
    printf("\n Nhap x = ");
    scanf("%f", &x);
    printf("\n Nhap sai so = ");
    scanf("%f", &c);

    while(e >= c)
    {
        e = pow(float(x),n)/giaithua(n);  // tinh sai so
        exp += e;
        n++;
    }
    printf("\n e^%f = %f", x, exp);
    getch();
}

long giaithua(int N)
{
    if(N == 0 || N == 1)
        return 1;
    else
        return N*giaithua(N-1);
}

Kết quả:

Nhap x = 2
Nhap sai so = 0.0001
e^2.000000 = 7.389047

Be the first to comment

Leave a Reply