分数加减法

来源:互联网 发布:linux delay函数 编辑:程序博客网 时间:2024/04/29 22:57

分数加减法

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

题目描述

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

输入

输入包含多行数据
每行数据是一个字符串,格式是"a/boc/d"。

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

数据以EOF结束
输入数据保证合法
 

输出

对于输入数据的每一行输出两个分数的运算结果。
注意结果应符合书写习惯,没有多余的符号、分子、分母,并且化简至最简分数

示例输入

1/8+3/81/4-1/21/3-1/3

示例输出

1/2-1/40
#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;}

 
0 0
原创粉丝点击