模拟大致的分母相加减的问题;
利用最大公约数和最小公倍数可以解决;
对于不同分母,求最小公倍数;
加和化简之后,采用最大公约数进行分子分母同除计算;
最小公倍数和最大公约数相关的问题之前总结过;
#include<iostream> #include<string> #include<vector> using namespace std; int gys(int a,int b) { if (b == 0) return a; return gys(b, a%b); } int gbs(int a, int b) { int temp; if (a > b) { temp = gys(a, b); } else { temp = gys(b, a); } return (a*b) / temp; } int main() { int a, b, c, d; while (cin >> a >> b >> c >> d) { int fm = gbs(b, d); a *= fm / b; c *= fm / d; int fz = a + c; int gy; if (fz > fm) { gy = gys(fz, fm); } else { gy = gys(fm, fz); } cout << fz / gy << " " << fm / gy << endl; } return 0; }