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--;
}
}
}
登高而望。

浙公网安备 33010602011771号