Pat乙级 1034 有理数四则运算

  • 思路
  • 代码

题目网址
https://pintia.cn/problem-sets/994805260223102976/problems/994805287624491008

思路

注意两个点,一是辗转相除法递归会超时,二是int范围会爆,得用long,不然测试点2、3过不去。思路就是模拟。

代码

#include<iostream>
#include<cmath>using namespace std;long gcd(long a, long b)
{if (a < b)swap(a, b);
//    return b == 0 ? a : gcd(b, a % b);while(b > 0) {int t = a % b;a = b;b = t;}return a;
}void fun(long a, long b){//化简 if (a == 0) {cout << 0;return ;}long t = gcd(abs(a), abs(b));//最大公因数 long T = abs(a * b) / t;//最小公倍数 a /= t;b /= t;if (a < 0) {cout << "(-";a = -a;if ((a % b) == 0)cout << a / b;else {if (a / b > 0)cout << a / b << " ";cout << a % b << "/" << b;}cout << ")";}else if (a == 0)cout << 0;else {if ((a % b) == 0)cout << a / b;else {if (a / b > 0)cout << a / b << " ";cout << a % b << "/" << b;}}
}
int main() {long a1;long a2;long b1;long b2;long A;long B;scanf("%ld/%ld %ld/%ld", &a1, &a2, &b1, &b2);//加法 fun(a1, a2);cout << " + ";fun(b1, b2);cout << " = ";A = a1 * b2 + b1 * a2;B = a2 * b2;if (B < 0) {A = -A;B = -B;}fun(A, B);cout << endl;//减法 fun(a1, a2);cout << " - ";fun(b1, b2);cout << " = ";A = a1 * b2 - b1 * a2;B = a2 * b2;if (B < 0) {A = -A;B = -B;}fun(A, B);cout << endl;//乘法fun(a1, a2);cout << " * ";fun(b1, b2);cout << " = ";A = a1 * b1;B = a2 * b2;if (B < 0) {A = -A;B = -B;}fun(A, B);cout << endl;//除法fun(a1, a2);cout << " / ";fun(b1, b2);cout << " = ";A = a1 * b2;B = a2 * b1;if (B < 0) {A = -A;B = -B;}if (B == 0) {cout << "Inf" << endl;return 0;}fun(A, B);cout << endl;return 0;
}

Pat乙级 1034 有理数四则运算相关推荐

  1. PAT乙级(1034 有理数四则运算)

    PAT乙级 1034 有理数四则运算 题目描述 解题代码 PAT解题所有题目 可看该模块下其他文章 代码涉及c++和c  供大家一起参考学习! 输入格式: 输入在一行中按照 a1/b1 a2/b2 的 ...

  2. PAT 乙级 1034. 有理数四则运算(20) Java版

    本题要求编写程序,计算2个有理数的和.差.积.商. 输入格式: 输入在一行中按照"a1/b1 a2/b2"的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只 ...

  3. C++学习之路 | PTA乙级—— 1034 有理数四则运算 (20 分)(精简)

    1034 有理数四则运算 (20 分) 本题要求编写程序,计算 2 个有理数的和.差.积.商. 输入格式: 输入在一行中按照 a1/b1 a2/b2 的格式给出两个分数形式的有理数,其中分子和分母全是 ...

  4. PAT (Basic Level) Practise (中文)-1034. 有理数四则运算(20)

    PAT (Basic Level) Practise (中文)-1034. 有理数四则运算(20)  http://www.patest.cn/contests/pat-b-practise/1034 ...

  5. 【2020模拟考试T4】【PAT乙】1034 有理数四则运算 (20分) 测试点2

    problem 1034 有理数四则运算 (20分) 本题要求编写程序,计算 2 个有理数的和.差.积.商. 输入格式: 输入在一行中按照 a1/b1 a2/b2 的格式给出两个分数形式的有理数,其中 ...

  6. PAT乙级1034题解

    题目详情: 1034 有理数四则运算 (20 分) 本题要求编写程序,计算 2 个有理数的和.差.积.商. 输入格式: 输入在一行中按照 a1/b1 a2/b2 的格式给出两个分数形式的有理数,其中分 ...

  7. 1034. 有理数四则运算(20)-PAT乙级真题

    本题要求编写程序,计算2个有理数的和.差.积.商. 输入格式: 输入在一行中按照"a1/b1 a2/b2"的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只 ...

  8. 【PAT乙级】1034 有理数四则运算 (20 分)

    题目地址 #include<bits/stdc++.h> using namespace std; typedef long long int LL; LL gcd(LL a,LL b) ...

  9. PAT (Basic Level) 1034 有理数四则运算(模拟)

    题目链接:点击查看 题目大意:模拟有理数的四则运算 题目分析:这个题真的考验代码实现能力,我模拟了好一会,终于是把样例过掉了,然后交了一发WA了两个测试点,一下子想起来如果直接乘的话会爆int,全部改 ...

最新文章

  1. 《深入java虚拟机》读书笔记类加载
  2. Linux监控(添加自定义监控项,配置邮件告警)
  3. JZOJ 1637. 【ZJOI2009】狼和羊的故事
  4. AutoMapper在ABP框架中的使用说明
  5. 计数原理,递推,求从左边能看到l个棒子,右边能看到r个棒子的方案数目
  6. 解决Pycharm添加虚拟解释器的报错问题
  7. 005 Aspectj的引入
  8. JQuery 获取URL中传递的参数
  9. 《史记》记载的喝粥延命内容
  10. CSS之立方体绘画步骤
  11. 苹果自带的清理软件_苹果电脑清理软件哪个好?对比CleanMyMac和腾讯柠檬清理软件...
  12. 微分几何笔记(3) —— Frenet标架及Frenet方程组
  13. LaTeX之非英语字母输入
  14. 传奇各大地图编号代码库
  15. 同态加密中无符号数之间比较大小
  16. 【Linux】CPU信息速查(品牌型号 | 物理CPU数 | 物理核数 | 逻辑核数)
  17. 设计分享|单片机多音阶电子琴(汇编)
  18. 有关于配环境为什么这么糟心的一点事
  19. IP地址、主机名、域名解析(DNS)、虚拟机配置固定IP
  20. 关于word粘贴图片无法显示的原因

热门文章

  1. 068_xhtml语法
  2. 4dda在linux中的意思,Evvail | MaxQuant-蛋白质组DDA数据分析金标准 | Omics - Hunter
  3. html 文本框 无法输入,无法在HTML文本框中输入任何东西
  4. Linux c语言虚拟串口,利用socat和cutecom实现Linux虚拟串口通信
  5. mysql 万亿数据_sql-server – 哪个数据库可以处理数十亿/数万亿条记录的存储?...
  6. c++ cin不能输入的问题
  7. Android WebView 和 javaScript的互相调用(二)
  8. Android 四大组件之——Acitivity(三) 深入了解Activity的启动流程
  9. vetur插件_6款让开发效率“起飞的”VS code插件,哪个才是你的最爱
  10. 计算机网络:Socket网络通信底层数据传输