In tổng S = 1+1/2+...1/n dưới dạng phân số như thế nào?

#include <iostream>
using namespace std;
int main()
{
	int n;
	float tong = 0;
	cout << "Nhap n:";
	cin >> n;
	for (int i = 1; i <= n; i++)
	{
		tong += 1.0/i;
	}
	cout << "\nTong la:" << tong;
	system("pause");
	return 0;
} 

Mọi người cho em hỏi là ví dụ nhập n = 3, thì nó xuất ra tổng là 1.8333, có cách nào để nó xuất ra được phân số là 11/6 không ạ?
(Em mới học nên mong mọi người chỉ giáo, em cảm ơn)

Thay vì dùng phép chia thì bạn đưa về dạng phân số và phép cộng phân số (quy đồng mẫu số) mà tính.

6 Likes

Nếu viết bằng C++ vậy sao bạn không sử dụng OOP.
Bạn có thể tạo 1 lớp phân số, sau đó viết những hàm thực hiện các phép tính tương ứng với phân số, như vậy sẽ dễ hiểu hơn và dễ đọc code nữa :slight_smile:

3 Likes

Mới có 3 tuần chắc chưa học struct nữa :slight_smile:

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