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

C语言作业:本题要求编写程序,计算2个整数的和,差,积,商并输出。题目保证输入和输出全部在整数范围内 C语言作业:本题要求编写程序,计算2个整数的和,差,积,商并输出。题目保证输入和输出全部在整数范围内 #include<stdio.h> int main() { int a; int b; scanf("%d %d",&a,&b); int c=a+b; int d=a-b; int e=a*b; int f=3/2; printf("%d + %d... 阅读详情

1034. 有理数四则运算(20)


题目

本题要求编写程序,计算2个有理数的和、差、积、商。

输入格式

输入在一行中按照“a1/b1 a2/b2”的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前,分母不为0。

输出格式

分别在4行中按照“有理数1 运算符 有理数2 = 结果”的格式顺序输出2个有理数的和、差、积、商。注意输出的每个有理数必须是该有理数的最简形式“k a/b”,其中k是整数部分,a/b是最简分数部分;若为负数,则须加括号;若除法分母为0,则输出“Inf”。题目保证正确的输出中没有超过整型范围的整数。

输入样例1

2/3 -4/2

输出样例1

2/3 + (-2) = (-1 1/3)
2/3 - (-2) = 2 2/3
2/3 * (-2) = (-1 1/3)
2/3 / (-2) = (-1/3)

输入样例2

5/3 0/6

输出样例2

1 2/3 + 0 = 1 2/3
1 2/3 - 0 = 1 2/3
1 2/3 * 0 = 0
1 2/3 / 0 = Inf

PAT链接


思路

分数数据结构存储

struct Fraction
{
    LL up, down;
}a, b;

运算

Fraction reduction(Fraction result)
Fraction add(Fraction f1, Fraction f2)
Fraction sub(Fraction f1, Fraction f2)
Fraction mul(Fraction f1, Fraction f2)
Fraction div(Fraction f1, Fraction f2)
void showResult(Fraction r)

代码

/**
* @tag     PAT_B_1034
* @authors R11happy (xushuai100@126.com)
* @date    2016-9-8 19:29-22:04
* @version 1.0
* @Language C++
* @Ranking  890/371
* @function null
*/

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>    //头文件不能用<cmath>,用<algorithm>才能过
using namespace std;
typedef long long LL;

struct Fraction
{
    LL up, down;
}a, b;

LL gcd(LL a, LL b)
{
    if (b == 0)  return a;
    else return gcd(b, a%b);
}
//分数化简
Fraction reduction(Fraction result)
{
    if (result.down < 0)
    {
        result.up = -result.up;
        result.down = -result.down;
    }
    if (result.up == 0)
    {
        result.down = 1;
    }
    else
    {
        LL d = gcd(abs(result.up), abs(result.down));   //要计算绝对值的公约数
        result.up /= d;
        result.down /= d;
    }
    return  result;
}

Fraction add(Fraction f1, Fraction f2)
{
    Fraction result;
    result.up = f1.up*f2.down + f2.up*f1.down;
    result.down = f1.down * f2.down;
    return reduction(result);
}

Fraction sub(Fraction f1, Fraction f2)
{
    Fraction result;
    result.up = f1.up*f2.down - f2.up*f1.down;
    result.down = f1.down * f2.down;
    return reduction(result);
}

Fraction mul(Fraction f1, Fraction f2)
{
    Fraction result;
    result.up = f1.up * f2.up;
    result.down = f1.down * f2.down;
    return reduction(result);
}

Fraction div(Fraction f1, Fraction f2)
{
    Fraction result;
    result.up = f1.up * f2.down;
    result.down = f1.down * f2.up;
    return reduction(result);
}

void showResult(Fraction r)
{
    r = reduction(r);
    if (r.up < 0)   printf("(");
    if (r.down == 1) printf("%lld", r.up);
    else if (abs(r.up) > r.down)   printf("%lld %lld/%lld", r.up / r.down, abs(r.up) % r.down, r.down);    //是else if 不是 if 而且abs不能少
    else
        printf("%lld/%lld", r.up, r.down);
    if (r.up < 0)    printf(")");
}

int main(int argc, char const *argv[])
{
    scanf("%lld/%lld %lld/%lld", &a.up, &a.down, &b.up, &b.down);
    // 加
    showResult(a);
    printf(" + ");
    showResult(b);
    printf(" = ");
    showResult(add(a, b));
    printf("\n");
    // 减
    showResult(a);
    printf(" - ");
    showResult(b);
    printf(" = ");
    showResult(sub(a, b));
    printf("\n");
    //乘
    showResult(a);
    printf(" * ");
    showResult(b);
    printf(" = ");
    showResult(mul(a, b));
    printf("\n");
    // 除
    showResult(a);
    printf(" / ");
    showResult(b);
    printf(" = ");
    if(b.up == 0)   printf("Inf");
    else showResult(div(a, b));
    printf("\n");
    return 0;
}

收获

2026年国赛C题微网与外部电网电力调控策略 (三):问题三、问题四滚动预测、实时电价与结果核验 专栏内定期更新ABCDE五题详细思路、代码(含运行结果图)和讲解视频-(11号之前半价):问题三看起来只是多给了一个光伏预报附件,实质上它改变了整道题的信息结构:问题四则是在问题二、问题三之上替换价格来源。问题4-2相当于“确定性计划+实时电价”,问题4-3相当于“滚动预测+实时电价”。物理模型完全不变,改变的是价格序列和费用口径。本文先给出核心结果:从结果看,问题3比问题2多约164.21万元,问题4-3比问题4-2多约168.79万元。主要增量不是“储能没有工作”,而是预测误差、计划偏差和紧急购电造成的 阅读详情

相关推荐

c语言实现语音检测vad_壹鸽技术科普·智能语音客服系统中的前端语音处理技术...

随着智能客服机器人产业的迅速发展,尤其是伴随着人工智能AI的风潮,预计在2020年我国智能客服市场将达到万亿级别。在智能客服机器人领域中对电话信道语音进行端点检测处理的应用正在不断扩展和深化。目前语音端点检测(Voice Active Detection,简称VAD)的主要任务是准确快速判决出待处理的语音信号有话还是无话,作为自动语音识别(Automatic Speech Recognition,...

weixin_36431018的博客 507

1034 有理数四则运算 (20 分)

1034 有理数四则运算 (20 分) 本题要求编写程序,计算 2 个有理数的和、差、积、商。 输入格式: 输入在一行中按照 a1/b1 a2/b2 的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前,分母不为 0。 输出格式: 分别在 4 行中按照 有理数1 运算符 有理数2 = 结果 的格式顺序输出 2 个有理数的和、差、积、商。注意输出的每个有理数必须...

麦琪家的小麦 830

EBS开发_离散工单创建API

--以下代码于20171213在TONY环境中实现 DECLARE     l_iface_rec    wip.wip_job_schedule_interface%ROWTYPE; --工单任务接口表     l_group_id     NUMBER;     l_returnstatus VARCHAR2(40);     l_errormsg     VARCHAR2(2000

蜗牛先生快跑的博客 2596

简单编程(三)编写一个程序,要求用户输入两个整数,然后计算并输出他们的和、差、积、商。

编写一个程序,要求用户输入两个整数,然后计算并输出他们的和、差、积、商。

张志昌 的专栏 4万+

VS2022离线安装总闪退?可能是这个--noWeb参数没加对(完整参数指南)

本文深入解析了VS2022离线安装过程中常见的闪退问题,指出核心原因往往在于命令行参数使用不当,特别是`--noWeb`参数。文章提供了完整的参数使用指南和实战解决方案,包括证书处理、安装器文件修复及自动化脚本,帮助用户彻底解决离线部署中的验证失败与闪退难题。

weixin_28842269的博客 758

VideoPose3d:环境搭建+制作自己的视频

论文链接:3D human pose estimation in video with temporal convolutions and semi-supervised training 代码链接:https://github.com/facebookresearch/VideoPose3D 环境搭建:ubuntu20.04+pytorch1.8+cuda10.2+python3.6+anaconda 1.启动anaconda环境 新建环境命令: conda create -n pytorc.

willbetter01的博客 4938

PAT 乙级 1034 有理数四则运算(20 分)

1034 有理数四则运算(20 分) 本题要求编写程序,计算 2 个有理数的和、差、积、商。 输入格式: 输入在一行中按照 a1/b1 a2/b2 的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前,分母不为 0。 输出格式: 分别在 4 行中按照 有理数1 运算符 有理数2 = 结果 的格式顺序输出 2 个有理数的和、差、积、商。注意输出的每个有...

宝付支的博客 733

Power EM与Signal EM解决办法与原理分析

1.面对power EM,首先检查missing via,补全via,还可以加宽,加密局部power mesh,一些power IO出pin有power EM问题,可以叠加多层线和垂直方向补power形成网络降低并联电阻和提供更多电流通路解决,这种方法还可以降低ir drop。3.先进工艺有一个via ladder的方法可以解决power/signal em问题,clock cell出pin绕线或者power rail连接power stripe通过搭梯子的方式连接,原理还是分流。

m0_61544122的博客 4743

两个数的和、差、积、商

#include using namespace std; int main() { double num1,num2,sum,sub,mul,div; cout<<"请输入两个数字:"<<endl; cin>>num1>>num2; sum=num1+num2; sub=num1-num2; mul=num1*num2; div=num1/num2; cout<

u012368992的专栏 2448

App 抓包难?Frida Hook 实战:绕过 SSL Pinning (证书绑定) 抓取某大厂 App 核心接口

当我们使用 Charles 抓包 HTTPS 时,本质上是实施了MITM(中间人攻击)。Charles 伪装成服务器,发给 App 一个自己的证书(伪造证书)。Charles 伪装成 App,拿着真正的证书去请求服务器。如果 App 只是简单校验“证书是否由受信任的 CA 签发”,那你把 Charles 的根证书安装到手机系统里,就能骗过它。但是,是 App 内置了服务器证书的Hash(指纹)。

BUG猿的博客 914

Coze智能体实战:接口需求分析和接口调试

AI智能体的需求:能根据接口文档提取接口信息以及设计接口测试点,并进行接口调试返回接口测试结果。

十二测试录 282

PAT乙级 1034 有理数四则运算 (20分)

1034 有理数四则运算 (20分) 本题要求编写程序,计算 2 个有理数的和、差、积、商。 输入格式: 输入在一行中按照 a1/b1 a2/b2 的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前,分母不为 0。 输出格式: 分别在 4 行中按照 有理数1 运算符 有理数2 = 结果 的格式顺序输出 2 个有理数的和、差、积、商。注意输出的每个有理数必须是该有理数的最简形式 k a/b,其中 k 是整数部分,a/b 是最简分数部分;若为负数,则须加括号;若除法分母为

冰释的温存的博客 364

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

PAT乙级-1034 有理数四则运算 (20分)

题目: 本题要求编写程序,计算 2 个有理数的和、差、积、商。 输入格式: 输入在一行中按照 a1/b1 a2/b2 的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前,分母不为 0。 输出格式: 分别在 4 行中按照 有理数1 运算符 有理数2 = 结果 的格式顺序输出 2 个有理数的和、差、积、商。注意输出的每个有理数必须是该有理数的最简形式 k a/b...

卷子的博客 858

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

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

1034. 有理数四则运算(20)本题要求编写程序,计算2个有理数的和、差、积、商。输入格式:输入在一行中按照“a1/b1 a2/b2”的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前,分母不为0。输出格式:分别在4行中按照“有理数1 运算符 有理数2 = 结果”的格式顺序输出2个有理数的和、差、积、商。注意输出的每个有理数必须是该有理数的最简形式“k a...

柳婼 の blog 5490

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

PAT乙级刷题之路1034 有理数四则运算 (20分)

1034 有理数四则运算 (20分) 本题要求编写程序,计算 2 个有理数的和、差、积、商。 输入格式: 输入在一行中按照 a1/b1 a2/b2 的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前,分母不为 0。 输出格式: 分别在 4 行中按照 有理数1 运算符 有理数2 = 结果 的格式顺序输出 2 个有理数的和、差、积、商。注意输出的每个有理数必须是...

derbi123123的博客 269

PAT 乙级 1034 有理数四则运算 (20分)

我的个人网站Cheese的个人主页http://www.cheese.ren/ 博客来源PAT 乙级 1034 有理数四则运算-Cheese的个人博客PAT 乙级 1034 有理数四则运算http://blog.cheese.ren/54 欢迎交换友链 :-) #include<bits/stdc++.h> usingnamespacestd; longlonggcd(longlonga,longlongb){ returnb==0?a:...

起司Cheese的博客 177

pat乙级1034. 有理数四则运算(20)

1034. 有理数四则运算(20)时间限制200 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者CHEN, Yue本题要求编写程序,计算2个有理数的和、差、积、商。输入格式:输入在一行中按照“a1/b1 a2/b2”的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前,分母不为0。输出格式:分别在4行中按照“有理数1 运算符 ...

jiayoudangdang的博客 884

PAT乙级|C语言|1034 有理数四则运算 (20分)

题目 本题要求编写程序,计算 2 个有理数的和、差、积、商。 输入格式: 输入在一行中按照 a1/b1 a2/b2 的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前,分母不为 0。 输出格式: 分别在 4 行中按照 有理数1 运算符 有理数2 = 结果 的格式顺序输出 2 个有理数的和、差、积、商。注意输出的每个有理数必须是该有理数的最简形式 k a/b,...

烫烫烫的博客 664

PAT乙级—1034 有理数四则运算 (20分)

本题要求编写程序,计算 2 个有理数的和、差、积、商。 输入格式: 输入在一行中按照 a1/b1 a2/b2 的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前,分母不为 0。 输出格式: 分别在 4 行中按照 有理数1 运算符 有理数2 = 结果 的格式顺序输出 2 个有理数的和、差、积、商。注意输出的每个有理数必须是该有理数的最简形式 k a/b,其中 ...

lonely喆的博客 211

pat乙级 1034 有理数四则运算 (20 分)

本题要求编写程序,计算 2 个有理数的和、差、积、商。 输入格式: 输入在一行中按照 a1/b1 a2/b2 的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前,分母不为 0。 输出格式: 分别在 4 行中按照 有理数1 运算符 有理数2 = 结果 的格式顺序输出 2 个有理数的和、差、积、商。注意输出的每个有理数必须是该有理数的最简形式 k a/b,其中 ...

博客 378

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

题目: 本题要求编写程序,计算2个有理数的和、差、积、商。 输入格式: 输入在一行中按照“a1/b1 a2/b2”的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前,分母不为0。 输出格式: 分别在4行中按照“有理数1 运算符 有理数2 = 结果”的格式顺序输出2个有理数的和、差、积、商。注意输出的每个有理数必须是该有理数的最简

ZWANG987的博客 372

PAT乙级 | 1034 有理数四则运算 (20分)

本题要求编写程序,计算 2 个有理数的和、差、积、商。 输入格式: 输入在一行中按照 a1/b1 a2/b2 的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前,分母不为 0。 输出格式: 分别在 4 行中按照 有理数1 运算符 有理数2 = 结果 的格式顺序输出 2 个有理数的和、差、积、商。注意输出的每个有理数必须是该有理数的最简形式 k a/b,其中 k 是整数部分,a/b 是最简分数部分;若为负数,则须加括号;若除法分母为 0,则输出 Inf。题目保证正确的输

qq_44888152的博客 337

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

本题要求编写程序,计算2个有理数的和、差、积、商。 输入格式: 输入在一行中按照“a1/b1 a2/b2”的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前,分母不为0。 输出格式: 分别在4行中按照“有理数1 运算符 有理数2 = 结果”的格式顺序输出2个有理数的和、差、积、商。注意输出的每个有理数必须是该有理数的最简形式“k a/

柳婼 の blog 905

PAT乙级1034 有理数四则运算 (20 分)

https://pintia.cn/problem-sets/994805260223102976/problems/994805287624491008 题目不难 说实话太麻烦了 建议把套路记住 #include <iostream> #include <cmath> using namespace std; struct fenshu{ long long dow...

weixin_43333890的博客 190
上一篇: PAT乙级.1049. 数列的片段和(20)
下一篇: PAT乙级.1013. 数素数 (20)
R11happy
博客等级 码龄11年 6粉丝 77原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值