求分数的GCD小学生实例

2014-02-14 12:54:26 · 作者: · 浏览: 146

  Sol:求分数的GCD小学生都会。。。注意通分约分就好。

  #include

  #include

  #include

  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;

  }