分数加减法(P3979)

来源:互联网 发布:方维p2p网贷系统源码 编辑:程序博客网 时间:2024/04/30 18:04
#include<iostream>#include<cstdio>#include<cstring> #include<algorithm>   #include<queue>#include<cstdlib>using namespace std; #define N 6int gcd(int a,int b){if (a<b)swap(a,b);if (a%b)return gcd(b,a%b);return b;}int main(){freopen("fuck.txt","r",stdin);char go[100];while (scanf("%s",go)==1){//cout<<"fdkj"<<endl;int a=go[0]-'0';int c=go[2]-'0';int b=go[4]-'0';int d=go[6]-'0';//cout<<a<<' '<<b<<' '<<c<<' '<<d<<endl;if (go[3]=='+'){a*=d;//cout<<a<<' ';b*=c;//cout<<b<<' ';a+=b;//cout<<a<<' ';c*=d;//cout<<c<<' ';b=gcd(a,c);//cout<<b<<' ';if (a%c==0)cout<<a/c<<endl;elsecout<<a/b<<'/'<<c/b<<endl;}else{a*=d;b*=c;a-=b;c*=d;if (a!=0)b=gcd(abs(a),c);if (abs(a)%c==0)cout<<a/c<<endl;elsecout<<a/b<<'/'<<c/b<<endl;}}return 0;}

分数加减法
Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 9628 Accepted: 3090

Description

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

Input

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

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

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

Output

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

Sample Input

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

Sample Output

1/2-1/40

Source