Sol:求分数的GCD小学生都会。。。注意通分约分就好。
#include <cstdio> #include <algorithm> #include <iostream> using namespace std; inline long long gcd(long long a,long long b) { return b==0?a:gcd(b,a%b); } inline long long lcm(long long a,long long b) { return a/gcd(a,b)*b; } int main() { int T; scanf("%d",&T); while(T--) { long long a,b,c,d,n,m,cnt; scanf("%I64d/%I64d%I64d/%I64d",&a,&b,&c,&d); a=a*d,c=b*c; n=lcm(a,c); m=b*d; cnt=gcd(n,m); n/=cnt; m/=cnt; if(m==1) printf("%I64d\n",n); else printf("%I64d/%I64d\n",n,m); } return 0; }