Hỏi thuật toán tính tổng S = 1 + (1+2+...+n)/1! + (1+2+...+n-1)/(1!+2!)

mọi người cho em xin cách tính tử số bài này với ạ. Em đang học C hơi ngáo ngáo


đây là bàu em làm mà nó cứ ngáo ngáo sai sai ạ

for(i=1;i<=n;i++)
{
	gt=gt*i;
	mau=mau+gt;
	for(i=n;i>=1;i--)
		{
		tu=tu+i; 
		}
		
	S=S+tu/mau;
	
}

Bạn tách ra 2 phần xử lý, xử lý tử số và xử lý mẫu số riêng, xử lý xử số bạn viết hàm tính tổng từ 1->n (input vào là số n) , xử lý mẫu thì bạn viết hàm tính tổng giai thừa (input vào là i),trước khi thực hiện xử lý tử số thì bạn kiểm tra n>=1, sau mỗi lần thực hiện thì n-=1, xử lý mẫu thì bắt đầu từ i=1, sau mỗi lần thực hiện xong thì i+=1 và trước mỗi lần xử lý mẫu thì bạn kiểm tra i<=n

Bài này chia nhỏ ra cho dễ hình dung bạn ạ

  1. Phải khởi tạo sum = 1 trước.
  2. Hai biến lặp trùng nhau kìa :slight_smile:
  3. Bạn tính sai tử số vì lúc nào cũng cộng cho tới n.
1 Like

thanks bác nhiều nhé

thanks bác để em thử xem sao

Nên tính tử số và mẫu số trước, lưu kết quả vào 2 mảng động.
Sau đó đọc tử số và mẫu số từ 2 mảng đó để tính S.
Phức tạp hơn chút nhưng chương trình sẽ chạy nhanh hơn rất nhiều

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?