首页 > 试题广场 >

【模板】分数四则运算

[编程题]【模板】分数四则运算
  • 热度指数:404 时间限制:C/C++ 5秒,其他语言10秒 空间限制:C/C++ 512M,其他语言1024M
  • 算法知识视频讲解
\hspace{15pt}对于给定的两个分数和四则运算符号,计算分数运算的结果。

输入描述:
\hspace{15pt}每个测试文件均包含多组测试数据。第一行输入一个整数 T\left(1\leqq T\leqq 5 \times 10^5\right) 代表数据组数,每组测试数据描述如下:

\hspace{15pt}在一行上输入五个整数 a,b,op,c,d \left( -10^9\leqq a,b,c,d \leqq 10^9;\ 1 \leqq op \leqq 4\right) 代表 \dfrac{a}{b} 与 \dfrac{c}{d} 进行 op 运算,1,2,3,4 分别代表加减乘除。


输出描述:
\hspace{15pt}对于每一组测试数据,如果答案不存在,在一行上输出 \texttt{inf} ;否则,在一行上输出两个整数,代表分数四则运算的分子分母,你需要确保输出的是最简分数。特别的,如果是非负分数,则不应当输出负号;如果是负分数,负号与分子一同输出。
示例1

输入

5
1 2 1 1 2
1 2 2 1 2
-1 2 3 0 2
1 2 4 1 2
1 0 1 0 1

输出

1 1
0 1
0 1
1 1
inf

说明

\hspace{15pt}对于第一组测试数据,列式为 \displaystyle \dfrac{1}{2} + \dfrac{1}{2} = \dfrac{2}{2} \to \dfrac{1}{1}
\hspace{15pt}对于第二组测试数据,列式为 \displaystyle \dfrac{1}{2} - \dfrac{1}{2} = \dfrac{0}{2} \to \dfrac{0}{1}
\hspace{15pt}对于第三组测试数据,列式为 \displaystyle \left(-\dfrac{1}{2}\right) \times \dfrac{0}{2} = -\dfrac{0}{4} \to \dfrac{0}{1}
\hspace{15pt}对于第四组测试数据,列式为 \displaystyle \dfrac{1}{2} \div \dfrac{1}{2} = \dfrac{1}{1}
头像 Ldh1315109
发表于 2025-11-09 16:32:47
from fractions import Fraction def solve(testcase): a, b, op, c, d = MI() try: A = Fraction(a, b) B = Fraction(c, d) 展开全文
头像 ddb酱
发表于 2025-11-14 11:58:48
#include <bits/stdc++.h> using namespace std; #define endl "\n" #define int long long void solve() { int a, b, op, c, d;cin >&g 展开全文
头像 自由的风0450
发表于 2025-11-14 17:40:58
#include <iostream> #include <cmath> using namespace std; long long gcd(long long a, long long b) { a = abs(a); b = abs(b); wh 展开全文