PTA 7-33 有理数加法

本题要求编写程序,计算两个有理数的和。

输入格式:
输入在一行中按照a1/b1 a2/b2的格式给出两个分数形式的有理数,其中分子和分母全是整形范围内的正整数。

输出格式:
在一行中按照a/b的格式输出两个有理数的和。注意必须是该有理数的最简分数形式,若分母为1,则只输出分子。

输入样例1:
1/3 1/6



输出样例1:
1/2



输入样例2:
4/3 2/3



输出样例2:
2

代码如下:

#include<stdio.h>
main()
{
  int x,y,x1,y1;
  scanf("%d/%d %d/%d",&x,&y,&x1,&y1);
  x*=y1;x1*=y;
  int temp=(x+x1)/(y*y1)*1.0;
  if (temp*(y*y1)==(x+x1))
  printf("%d",temp);
  else
  {
    int t=(x+x1)>(y*y1)?(y*y1):(x+x1);
    while(t)
    {
      if((x+x1)/t*t==(x+x1)&&(y*y1)/t*t==(y*y1))
      {
        printf("%d/%d",(x+x1)/t,(y*y1)/t);
        break;  
      }
      t--;
    }
  }

}

  

posted @ 2020-03-13 18:40  X-Yunner  阅读(500)  评论(0)    收藏  举报