4629. A+B Again
Description
输入两个分数a/b和c/d,计算a/b+c/d.
Input
第一行是一个整数T (T<=10),表示总共有T组数据. 接下来的T行,每行是一组数据,包括4个正整数a, b, c, d (1<=a, b, c, d<=10000).
Output
对于每组数据,输出a/b和c/d的和. 注意要将和化成最简分数,和的分子可以大于分母. 如果分母为1,只需输出分子.
Sample Input
3 1 1 1 2 1 6 1 3 4 5 1 5
Sample Output
3/2 1/2 1 |
分数相加,简单题。注意通分化简即可。
#include<iostream>
using namespace std;
int gcd(int num1,int num2)
{
int r=0;
if(num2>num1){
int temp=num2;
num2=num1;
num1=temp;
}
while(num2!=0)
{
r=num1%num2;
num1=num2;
num2=r;
}
return num1;
}
int lcd(int num1,int num2)
{
int h=gcd(num1,num2);
return (num1*num2)/h;
}
void huanjian(int fenzi,int fenmu)
{
int bei=gcd(fenzi,fenmu);
int a1=fenzi/bei;
int b1=fenmu/bei;
if(a1==b1) cout<<1<<endl;
else if(b1==1) cout<<a1<<endl;
else cout<<a1<<"/"<<b1<<endl;
return ;
}
int main()
{
int time;
cin>>time;
int a,b,c,d;
while(time--)
{
cin>>a>>b>>c>>d;
int gong = lcd(b,d);
int fenz=a*(gong/b)+c*(gong/d);
huanjian(fenz,gong);
}
system("pause");
return 0;
}