30/09/2018, 18:16
Viết chương trình tính e = 1 + x/1! - x^2/2! +...+(-1)^n+1*(x^n/n!) , với n là số nguyên dương, x là số thực được nhập từ bàn phím
Mọi người giải thích hộ mình bài này với!!!
Viết chương trình tính e = 1 + x/1! - x^2/2! +…+(-1)^n+1*(x^n/n!) , với n là số nguyên dương, x là số thực được nhập từ bàn phím
Đây là code của mình không biết edit như thế nào cho đúng?
int main() {
int n, s;
float x, e;
long i;
cout << "Nhap vao so nguyen n = ";
cin >> n;
cout << "Nhap vao so thuc x = ";
cin >> x;
s = 0;
for( i = 1; i <= x; i++)
s = s + s*i;
e = pow(-1,i)*(pow(x,n)/s);
cout << "E = "<< e << endl;
}
Bài liên quan
Bạn tự nhẩm bằng tay trước đi.
Cách giải của bạn sai rồi.
Cách giải những dạng bài này bạn nhìn vào số đầu và số cuối. Số cuối là công thức. Số đầu là điểm xuất phát cho thuật toán. Tìm hiểu vòng for trước đã nhé
Nhầm s = 1, phải sữa sao vậy bạn?
i=1 s=1+x
i=2 s=1+x+x*x/2
i=3 s=1+x+…
Code đệ quy …ngắn gọn…
không hiểu có thể reply mình giải thích nha^^
Mình không hiểu phần này lắm cái:
return Tinh(x,n-1)
Phần tính giai thừa này hình như sai?
Ở đây đệ quy thực chất nó cũng như một vòng lặp vậy
ở đây ta có :
float Tinh(int x, int n)
với x : là một số nguyên do người dùng nhập vào…bạn để ý…cái số x lúc gọi lại hàm thì nó k đổi…
nên
Tinh(x,n-1)
thâm số vẫn giữ nguyên(n-1)
:bạn để ý là
n
mỗi lần lặp nó giảm đi1
đến lúcn == 1
thì nó dừng lạiCông thức tính giai thừa là gì :
ví dụ
5! = 5*4*3*2*1 = ?
<=>
n! = n*(n-1)*(n-2)*(n-3)....*1
mỗi lần như z thì
n
nó sẽ giảm đi1
…tới lúcn == 1
thì dừng .À mình hiểu rồi, cám ơn bạn rất rất nhiều đã giải thích tường tận như vậy, thanks bạn nha!!!
Mình sợ viết ra như vậy sợ không hiểu hết…tại không có khiếu giải thích lắm…nếu mà nói thì bạn sẽ hiểu hơn
Cám ơn bạn!!!
This post was flagged by the community and is temporarily hidden.