Hỏi đáp
Chia sẻ kiến thức, cùng nhau phát triển
#include <iostream>
#include <fstream>
using namespace std;
void rutgonphanso(int &x, int &y)
{
int a,b;
a=x;
b=y;
while ( a != b)
{
if (a > b)
a = a - b;
else
b = b - a;
}
x=x/a;
y=y/b;
}
int main()
{
int a,b;
fstream input;
input.open("INPUT.txt",ios::in);
fstream output;
output.open("OUTPUT.txt",ios::out);
while(input.eof()==false)
{
input>>a>>b;
rutgonphanso(a,b);
output<<a<< " " <<b<<endl;
}
return 0;
}
Mình có đoạn code rút gọn phân số được nhập từ file như thế này.
Nhưng khi mình chạy thì trong file output luôn bị thừa ra 1 cặp tử,mẫu
VD: input: 6 8 và 3 9 thì output sẽ hiện ra 3 cặp tử,mẫu: 3 4; 1 3; 1 3
Cặp tử mẫu cuối cùng luôn luôn bị thừa ra như thế ạ
Thì như thế là mình sai ở đâu ạ. Mong mọi người giúp đỡ !
Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.
Đăng nhập
chochet
đã bình luận
10:16 01-04-2022
Bạn có thể sử dụng thuật toán Tính ước chung lớn nhất của a và b nhanh. Bạn include rồi sử dụng hàm __gcd(x, y) là được.

Vo Tan Duc
đã bình luận
09:48 01-04-2022
Đâu bạn debug thử xem