分数求和
时间限制: 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; }心得:一点点失误答案就是错误!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!