POJ-3979-分数加减法(分数运算)
2017-03-06 12:25
246 查看
//传送门:http://poj.org/problem?id=3979 #include <queue> #include <functional> #include <stdio.h> #include <string.h> #include <iostream> #include <algorithm> #include <stack> #include <vector> #include <set> #include <map> #include <string> #include <cmath> #include <cstdlib> #include <ctime> #include <assert.h> using namespace std; #define N 100005 int gcd(int a,int b) { return b==0?a:gcd(b,a%b); } int main() { int a,b,c,d; char ch; while(~scanf("%d/%d%c%d/%d",&a,&b,&ch,&c,&d)){ //以固定格式输入,会比输入字符串更易处理 int e = b*d/gcd(b,d); // e 为通分后的分母 ,对应的a c都要变化 a*=d/gcd(b,d); c*=b/gcd(b,d); if(ch=='-') a-=c; else a+=c; int f=a/gcd(a,e); // 两个分式合并后,分子为a,分母为f , 分子分母再化简 e/=gcd(a,e); // 如果分子为0,直接输入0 if(f==0){ printf("0\n"); continue; } if(e<0){ //分母不能有负号 f*=-1; e*=-1; } printf("%d",f); if(e!=1) printf("/%d",e); //分母为1,则不输出 puts(""); } return 0; }
相关文章推荐
- poj 3979 分数加减法
- POJ 3979 分数加减法
- poj 3979 分数加减法
- poj 3979 分数加减法
- POJ 3979 分数加减法
- poj 3979 分数加减法
- poj 3979 分数加减法
- (POJ 3979)分数加减法
- POJ 3979 分数加减法(水题)
- POJ3979 分数加减法
- 分数加减法 poj 3979
- poj3979 分数加减法
- ACM: 水题 分数运算 poj 3979
- POJ 3979 分数加减法(水~)
- POJ 3979 分数加减法 中文
- POJ-1721 CARDS 置换群分数幂运算
- 3979 分数加减法
- poj3979——分数化简
- pku--3979 分数加减法(注意分子为0,分母为1的情况)
- POJ 2777 Count Color(线段树+位运算)