01/10/2018, 15:56
Bài tập tính tổng trong C
Chào các anh ạ, em có bài tập sau mà làm mãi không ra. Mong các anh giúp em và chỉ giúp em em sai ở đâu.
Đề yêu cầu nhập từ bàn phím x và n, rồi tính tổng dưới ạ.
int main(){
double x, n, t1, s1, i;
printf("Nhap x"); scanf("%lf", &x);
printf("Nhap n"); scanf("%lf", &n);
s1 = 1;
for(i = 1; i <= n; i++){
t1 = x / i;
s1 = s1 + (s1 * t1);
}
printf("%lf", s1);
}
Em thấy quy luật là số sau bằng số trước * (x / i) nên em đặt x / i = t mà mãi không ra, mong các anh chị giúp.
Bài liên quan
mình thấy chỉ cần lưu lại giá trị hoán vị tại mỗi lần lặp thì tiện hơn vì
1!=1, 2!=1!x2, 3!=2!x3, 4!=3!x4
cứ mỗi lần lần lặp thì nhân i vào giá trị hoán vị đã lưu thì ta đựợc mẫu rồi cộng phân số vào sum thôi
Bạn cũng có ý đúng nhưng áp dụng chưa đúng thừa số x/i đó là cho số hạng mà, chứ đâu nhân với tổng.
Anh giúp em sửa được không ạ?
Đầu tiên bạn khởi tạo s1 = 1, t1= 1,
trong vòng lặp for sửa thành t1 *= x/i, s1 += t1.
Ngoài ra cũng có thể dùng đệ quy
Nói chung đây là dạng bài cơ bản, có nhiều cách làm, mình nghĩ bạn chịu khó suy nghĩ một chút là sẽ làm đc thôi, nên hạn chế hỏi diễn đàn những dạng này
Cứ mỗi vòng lặp bạn cần tính được x^n và đệ quy ( n! ) bằng bao nhiêu đã, sau đó mới lấy hai giá trị đó chia cho nhau, rồi mới cộng với biến s1. ở trên bạn chưa tính được x^n và đệ quy nên sẽ ra kết quả sai.