88. 分数加法
题目描述 Description
输入两个分数A和B,输出他们的和。
输入描述 Input
Description
a/b c/d
b,d是分母
a,c是分子哦
输出描述 Output
Description
a/b+c/d和
要约分
样例输入 Sample
Input
1/1 1/1
样例输出 Sample
Output
2
数据范围及提示 Data Size &
Hint
输入为int
分类标签 Tags 点此展开
暂无标签
代码:
#include
using namespace
std;
#include
int
a1,a2,b1,b2,c1,c2;
int gyshu(int
a,int b)
{
if(a
swap(a,b);
int c=a-b;
while(b!=c&&c>=0)
{
a=b;
b=c;
if(a
c=a-b;
}
if(b==c) return
c;
return 1;
}
int gbshu(int
a,int b)
{
return
a*b/gyshu(a,b);
}
int main()
{
scanf("%d/%d%d/%d",&a1,&a2,&b1,&b2);//注意用scanf把输入的“/”吃掉,否则会报错
int k=a2;
if(a2!=b2)//下面是分数加法的过程
{
}
a1=a1*(k/a2);b1*=(k/b2);
c2=k;
c1=a1+b1;
k=gyshu(c1,c2);//最后结果的约分
c1/=k;
c2/=k;
if(c2==1)
printf("%d",c1);
else{
printf("%d/%d",c1,c2);
}
return 0;
}