有理数四则运算(20)
时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小)
题目描述
本题要求编写程序,计算2个有理数的和、差、积、商。
输入描述:
输入在一行中按照“a1/b1 a2/b2”的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前,分
母不为0。
输出描述:
分别在4行中按照“有理数1 运算符 有理数2 = 结果”的格式顺序输出2个有理数的和、差、积、商。注意输出的每个有理数必须是该有理数的
最简形式“k a/b”,其中k是整数部分,a/b是最简分数部分;若为负数,则须加括号;若除法分母为0,则输出“Inf”。题目保证正确的输出中
没有超过整型范围的整数。
输入例子:
5/3 0/6
输出例子:
1 2/3 + 0 = 1 2/3
1 2/3 - 0 = 1 2/3
1 2/3 * 0 = 0
1 2/3 / 0 = Inf
#include <iostream>
#include <fstream>
#include <string>
#include <cstdio>
#include <cmath>
using namespace std;
class Fra
{public :int u, d;Fra(){}Fra(int a, int b){u = a;d = b;}void gcd(){int ul = u, dl = d;int res;if (dl == 0){res = 0;dl = 1;}elseres = ul % dl;while(res != 0){ul = dl;dl = res;res = ul % dl;}u = u/dl; d = d/dl;if (u < 0 && d < 0){u = -u; d =-d;}else if ((u < 0 && d > 0) || (u > 0 && d < 0)){u = -abs(u);d = abs(d);}}void print(ostream& cout){if (d == 0){cout << "Inf";return;}gcd();if (u == 0){cout << 0;return;}if (u / d < 0 || u <0)cout << "(-";if(u/d != 0){cout << abs(u/d);}if (u%d != 0){if(u/d != 0)cout << ' ';cout << abs(u%d) << '/' << abs(d);}if (u / d < 0|| u <0)cout << ")";}friend Fra operator+(Fra& a, Fra& b){return Fra(a.u*b.d + a.d*b.u, a.d * b.d);} friend Fra operator-(Fra& a, Fra& b){return Fra( a.u*b.d - a.d*b.u, a.d * b.d);}friend Fra operator*(Fra& a, Fra& b){return Fra(a.u * b.u, a.d*b.d);}friend Fra operator/(Fra& a, Fra& b){return Fra(a.u * b.d, a.d*b.u);}
};int main() {Fra a, b;scanf("%d/%d %d/%d", &(a.u), &(a.d), &(b.u), &(b.d));a.print(cout); cout << " + "; b.print(cout); cout << " = "; (a+b).print(cout); cout << endl;a.print(cout); cout << " - "; b.print(cout); cout << " = "; (a-b).print(cout); cout << endl;a.print(cout); cout << " * "; b.print(cout); cout << " = "; (a*b).print(cout); cout << endl;a.print(cout); cout << " / "; b.print(cout); cout << " = "; (a/b).print(cout); cout << endl;return 0;
}
有理数四则运算(20)相关推荐
- C++学习之路 | PTA乙级—— 1034 有理数四则运算 (20 分)(精简)
1034 有理数四则运算 (20 分) 本题要求编写程序,计算 2 个有理数的和.差.积.商. 输入格式: 输入在一行中按照 a1/b1 a2/b2 的格式给出两个分数形式的有理数,其中分子和分母全是 ...
- PAT (Basic Level) Practise (中文)-1034. 有理数四则运算(20)
PAT (Basic Level) Practise (中文)-1034. 有理数四则运算(20) http://www.patest.cn/contests/pat-b-practise/1034 ...
- 【2020模拟考试T4】【PAT乙】1034 有理数四则运算 (20分) 测试点2
problem 1034 有理数四则运算 (20分) 本题要求编写程序,计算 2 个有理数的和.差.积.商. 输入格式: 输入在一行中按照 a1/b1 a2/b2 的格式给出两个分数形式的有理数,其中 ...
- 1034. 有理数四则运算(20)
本题要求编写程序,计算2个有理数的和.差.积.商. 输入格式: 输入在一行中按照"a1/b1 a2/b2"的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只 ...
- 1034 有理数四则运算 (20 分)(c语言)(测试点三)
本题要求编写程序,计算 2 个有理数的和.差.积.商. 输入格式: 输入在一行中按照 a1/b1 a2/b2 的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前 ...
- 牛客网_PAT乙级_10234有理数四则运算(20)【通过5/7:格式错误】
题目描述 本题要求编写程序,计算2个有理数的和.差.积.商. 输入描述: 输入在一行中按照"a1/b1 a2/b2"的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整 ...
- PAT 乙级 1034. 有理数四则运算(20) Java版
本题要求编写程序,计算2个有理数的和.差.积.商. 输入格式: 输入在一行中按照"a1/b1 a2/b2"的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只 ...
- 1034. 有理数四则运算(20)-PAT乙级真题
本题要求编写程序,计算2个有理数的和.差.积.商. 输入格式: 输入在一行中按照"a1/b1 a2/b2"的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只 ...
- 1034 有理数四则运算 (20分)
本题要求编写程序,计算 2 个有理数的和.差.积.商. 输入格式: 输入在一行中按照 a1/b1 a2/b2 的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前 ...
最新文章
- 在kubernetes集群中部署mysql主从
- oracle数据库的详细安装,Oracle 11g数据库详细安装图文教程
- 安装memory analyzer
- pointnet分割自己的点云数据_细嚼慢咽读论文:PointNet论文及代码详细解析
- mysql8.0新建用户登录_Mysql8.0 创建远程登陆账户
- 32位和64位操作系统,二者有何区别?是否64位更快?
- Mac OS 添加 MySQL 环境变量
- Filmage Screen for Mac 专业录屏软件用这个就足够
- 数学建模之lingo使用
- java知识体系结构图
- 开启阿里云linux下的pure-ftpd被动模式,解决flashfxp可连接但无法下载的问题
- 大数据技术——Spark实时计算
- Matlab绘制简单动画
- ultravnc 设置代理_选择代理记账有何好处及注意事项
- Java游戏用户登录注册_用java类模拟游戏的账号的登陆,注册,退出。 1.没有账号,需要注册。 2.注册完成后方可登...
- [办公软件]怎么在WPS表格里设置完成率公式?
- 14.3 inline、const、mutable、this与static
- 2020中国高校薪资排行榜出炉!
- 纵览各国关键信息基础设施配套网络安全法规建设
- IIS6.0功能及应用详解