您的位置:首页 > 其它

分数加减法

2015-08-10 10:37 260 查看

分数加减法


Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^

题目描述

编写一个C程序,实现两个分数的加减法

输入

输入包含多行数据

每行数据是一个字符串,格式是"a/boc/d"。

其中a, b, c, d是一个0-9的整数。o是运算符"+"或者"-"。

数据以EOF结束

输入数据保证合法

输出

对于输入数据的每一行输出两个分数的运算结果。

注意结果应符合书写习惯,没有多余的符号、分子、分母,并且化简至最简分数

示例输入

1/8+3/8
1/4-1/2
1/3-1/3


示例输出

1/2
-1/4
0

#include<bits/stdc++.h>
using namespace std;
int gy(int a,int b)
{
if (b==0) return a;
else return gy(b,a%b);
}               //辗转相除法求最大公约数
int main()
{
int a,b,c,d,m,n,k;
char o,p;
while (cin>>a>>p>>b>>o>>c>>p>>d)
{
m=b*d;
n=o=='+'?a*d+c*b:a*d-c*b;
if (n==0||n%m==0) cout<<n/m<<endl;
else
k=gy(abs(n),m),cout<<n/k<<'/'<<m/k<<endl;
}
return 0;
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: