hrbust 1178 分数加减(模拟+数论gcd,lcm)
2014-06-26 12:31
295 查看
题意是要模拟分数加减。
注意一些判断的细节。
代码:
注意一些判断的细节。
代码:
#include <stdio.h> int gcd(int a, int b) { if(b == 0) return a; return gcd(b, a % b); } int lcm(int a, int b) { int c = gcd(a, b); return a * b / c; } int main() { int a, b, c, d; char ch; while (scanf("%d/%d%c%d/%d", &a, &b, &ch, &c, &d) != EOF) { int fenmu = lcm(b, d); int fenzi; if (ch == '+') { fenzi = a * (fenmu / b) + c * (fenmu / d); } else { fenzi = a * (fenmu / b) - c * (fenmu / d); } if (fenzi == 0) { printf("0\n"); } else { int t = gcd(fenmu, fenzi); fenmu /= t; fenzi /= t; if(fenmu < 0) { fenzi = -fenzi; fenmu = -fenmu; } if(fenmu == 1) printf("%d\n", fenzi); else printf("%d/%d\n", fenzi, fenmu); } } return 0; }
相关文章推荐
- hrbust/哈理工oj 1178 分数加减【水题】
- 哈理工 1178 分数加减(简单的模拟)
- 【数论】 HDU 4497 GCD and LCM
- ACM数论之旅3---最大公约数gcd和最小公倍数lcm(苦海无边,回头是岸( ̄∀ ̄))
- ZOJ 1577 GCD & LCM 数论
- uva 11388 - GCD LCM(数论)
- UVA 11388 - GCD LCM(数论)
- 数论继续学习3--最大公约数gcd和最小公倍数lcm
- UVA11388 GCD LCM(数论)
- (Relax 数论 1.1)POJ 2429 GCD & LCM Inverse(已知GCD、LCM,反求a、b)
- 2018-01-12 HDU 5974 数论 GCD和LCM 的神奇性质
- 数论(1):最大公约数和最小公倍数(Gcd&Lcm)
- [数论]HOJ 2010 GCD & LCM Inverse
- hdu4497——GCD and LCM(数论&容斥原理or排列组合)
- 2015多校第8场 HDU 5382 GCD?LCM! 数论公式推导
- 基础数论算法(2) GCD LCM EXGCD 学习笔记
- POJ 2429 - GCD & LCM Inverse(数论)
- <模板>(Miller-Rabin和Pollard_rho算法)poj 2429 GCD & LCM Inverse (数论)
- 理论: 数论(1):整除、gcd以及lcm
- UVa 11388 - GCD LCM (简单数论)