分数求和

分数求和

时间限制: 1 Sec  内存限制: 128 MB
提交: 256  解决: 29
[提交][状态][讨论版]

题目描述

求两分数相加,输出结果。

输入

题目有多组测试数据,直到文件尾。
每组测试数据需要输入4个整数:
nume1, deno1为第一个数的分子和分母,

nume2, deno2为第二个数的分子和分母。

输出

两分数相加的结果。每个测试数据占一行。
输出格式为“nume3/deno3”,该格式对结果为整数的情况除外。
分母为0的情况不考虑。

样例输入

1 3 1 2 3 25 4 15 1 4 3 4 1 4 1 4

样例输出

5/6 29/75 1 1/2

提示

求最大公约数并约分,并注意分母为 1 时只需要输出分子。

#include<iostream>
using namespace std;
int main()
{ int a1,a2,b1,b2,m,n;
while(cin>>a1>>b1>>a2>>b2)
{ if(b1==0||b2==0)
  break;
int i,a,b;
a=a1*b2+a2*b1;
b=b1*b2;
if(a>b){m=a;n=b;}
else {m=b;n=a;}
for(i=n;i>=1;i--)
if(m%i==0&&n%i==0)
  break;
if(i==0)
i++;
a=a/i;
b=b/i;
if(b==1)
cout<<a<<endl;
else cout<<a<<'/'<<b<<endl;
 
}
return 0;
}

心得:一点点失误答案就是错误!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
原文地址:https://www.cnblogs.com/oversea201405/p/3767047.html