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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
/************************************************************ #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ả:
1 2 3 |
Nhap x = 2 Nhap sai so = 0.0001 e^2.000000 = 7.389047 |
kkk