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

1034 有理数四则运算 (20 分) //解决测试点2,3的方法是所有变量都定义成long long int ; //无论何种方法求其最大公约数其必须比零大; /*求最大公约数有三种方法:(适用范围是整数与整数之间) 方法一:穷举法 int f(int m1,int m2)//作用是求最大公约数; { int i,p; if(m1>m2) p=m2; else p=m1; if(p<0) p=-p; if(p= =0) r... 阅读详情

本题要求编写程序,计算 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
#include<bits/stdc++.h>
using namespace std;
// long long __gcd(long long a,long long b){
//      return b==0?a:__gcd(b,a%b);
// }
void print_num(long long a,long long b){
	long long temp = abs(__gcd(a,b));
	while(true){
		if(__gcd(a,b)==1||__gcd(a,b)==-1)break;
		a/=temp;
		b/=temp;
	}
	if(a%b==0){
		if(a<0){
			printf("(%lld)",a/b);
		}else printf("%lld",a/b);
	}else{
		if(a<0){
			if(abs(a)<b){
				printf("(%lld/%lld)",a,b);	
			}else{
				printf("(%lld %lld/%lld)",a/b,-1*a-b*(-1*(a/b)),b);
			}
		}else{
			if(a<b){
				printf("%lld/%lld",a,b);
			}else{
				printf("%lld %lld/%lld",a/b,a-b*(a/b),b);
			}
		}
	}
}
void add(long long a,long long b,long long c,long long d){
	long long t1 = b;
	long long t2 = d;
	while (b != d) {
		b *= t2;
		a *= t2;
		d *= t1;
		c *= t1;
	}
	print_num(a + c, b);
}
void minus_(long long a,long long b,long long c,long long d){
	long long t1 = b;
	long long t2 = d;
	while (b != d) {
		b *= t2;
		a *= t2;
		d *= t1;
		c *= t1;
	}
	print_num(a - c, b);
}
void multiply(long long a,long long b,long long c,long long d){
	print_num(a * c, b*d);
}

void divide(long long a,long long b,long long c,long long d){
	if(c==0){
		printf("Inf");
		return;
	}
	if(c<0){
		c*=-1;
		d*=-1;
	}
	multiply(a,b,d,c);
}
int main(){
	long long a,b,c,d;
	scanf("%lld/%lld %lld/%lld",&a,&b,&c,&d);
	print_num(a,b);
	printf(" + ") ;
	print_num(c,d);
	printf(" = ");
	add(a,b,c,d);
	
	printf("\n");
	print_num(a,b);
	printf(" - ");
	print_num(c,d);
	printf(" = ");
	minus_(a,b,c,d);
	
	printf("\n");
	print_num(a,b);
	printf(" * ");
	print_num(c,d);
	printf(" = ");
	multiply(a,b,c,d);
	
	printf("\n");
	print_num(a,b);
	printf(" / ");
	print_num(c,d);
	printf(" = ");
	divide(a,b,c,d);
    return 0;
}

 

C++ 1034 有理数四则运算(20 分)   1:最大公约数,最小公倍数求法  参考https://blog.youkuaiyun.com/special_hg/article/details/52450073 最小公约数最简单的写法:   2: if else语句 一个 if 语句后可跟一个可选的 else if...else 语句,这可用于测试多种条件。 当使用 if...else if...else 语句时,以下... 阅读详情

相关推荐

10分钟上手YOLOv11:最强姿态估计模型来了,代码开源,效果炸裂!

【10分钟玩转YOLOv11实时姿态估计】🚀 YOLOv11作为YOLO家族最新成员,在速度、精度和易用性上全面升级,尤其适用于姿态估计等复杂视觉任务。本文带您快速掌握: 1️⃣ 核心概念:姿态估计即识别人体17个关键点(如关节部位)并连接成数字骨架,是智能健身、体感游戏等应用的基础。 2️⃣ 技术优势: 超轻量级(最小仅2.9M参数) 极速推理(GPU仅1.7ms) 高精度(COCO mAP@50-95达50%) 3️⃣ 三步实操: ① 安装:pip install ultralytics ② 准备人物

weixin_41246802的博客 1788

7-4 有理数加法 (15 分)

7-4 有理数加法 (15 分) 本题要求编写程序,计算两个有理数的和。 输入格式: 输入在一行中按照a1/b1 a2/b2的格式给出两个分数形式的有理数,其中分子和分母全是整形范围内的正整数。 输出格式: 在一行中按照a/b的格式输出两个有理数的和。注意必须是该有理数的最简分数形式,若分母为1,则只输出分子。 输入样例1: 1/3 1/6 输出样例1: 1/2 输入样例2: 4/3 2/3 输出...

丁世杰的博客 2539

lift off工艺为什么常用蒸发的方式镀膜?

电子束蒸发中,蒸发物质从源头直接升华并沿直线路径沉积到晶圆上,它可以避免金属在掩模侧壁的覆盖,只在表面进行沉积。在镀膜结束后,在进行光刻胶剥离时,去胶液无法与光刻胶接触反应,导致光刻胶剥离很困难。欢迎加入我的半导体制造知识星球社区,目前社区有1900人左右。我观察到晶圆厂中lift off工艺,镀膜都是用的电子束蒸发的方式,很少有用磁控溅射的方式,为什么?需要增加撕胶工序,将胶面上覆盖的膜层撕掉,使光刻胶露出,这样才容易剥离。上图为磁控溅射的膜层截面图,去胶液很难突破侧壁膜层,进行反应。

1685

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

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

一定要站在自己热爱的生活里闪闪发光 3万+

如何利用PREEvision和MATLAB开发AUTOSAR软件组件

在业界,比较著名的电子电气架构开发工具要属德国Vector公司开发的PREEvision工具了,而MATLAB/Simulink软件是非常高效且实用的基于模型的应用软件开发工具。利用PREEvision与Simulink联合开发AUTOSAR应用软件组件的开发流程有三种,分别是:“自上而下”开发流程(从PREEvision开始),“自下而上”开发流程(从Simulink开始),以及“双向”开发流程。如下图所示,无论哪一种开发流程,PREEvision与Simulink工具都是通过arxml文件进行信息交互的

怿星科技的博客 5396

数字太大放不下,高精度来补,如何放下超大数字,以及进制转换,高精度真的超好玩。 洛谷1009,1015

想必大家都遇到过数字大小超过int类型范围的情况,是不是碰到int放不下的数字自然就会想到,long int,long long int,甚至unsigned long long int呢。但是有一些出题者就很可恶,偏要出一些连unsigned long long int也放不下的算法题,应对这些问题时,我们是否有相应的应对方法呢?答案是:当然有,高精度就是一种应对这种问题时很好的解决办法。相信你在看完这篇文章后能对高精度有着更深更好的理解。我会循序渐进的来讲,这样大家也更容易听懂。

2303_79329831的博客 1229

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

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

一起加油 4943

【ROS】ROS局域网下多机通讯方法

最近工作中需要用到多机通讯,这里稍微总结一下使用方法。一、网络配置ifconfig这里举个例子,主机的IP地址为192.168.1.127,从机的IP地址为192.168.1.126;之后可测试一下能否互相ping通,成功后进行下一步。

weixin_43326110的博客 3360

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

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

韩旭051的博客 3554

innovus:Clock Gating Check设置与报告

看图后发现,在设置clock gating check之前报告也会有clock gating check的值,这个就是因为timing library中会像reg一样定 library setup time值,如下图。我们常用set_clock_gating_check -setup去过约束Place阶段reg2cgate的时序,以防CTS后由于tree不平导致的时序违例。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 1012

十一、Cadence ic 617以及assura使用总结

1.617的端口和514不同,没有网络属性,使用时不能直接放在原理图上,如果要直接放在图上要接线并且放上标签。2.617的端口也不能直接放在线上,514中将端口直接放在线上是可以使端口和线连接,但617看似连接,但拉出来线没有交点,实际上没有连接。这里set switches里的选项表示不同的模块,也就是选择一个就只对这一部分进行DRC验证,要验证整个版图的DRC就要把所有的选项选中,然后一个个改正。LVS中也是一样,要全部选中改正。

0 2295

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

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

HenryLei的博客 2万+

汽车安全新防线|基于AI的入侵检测系统开发(全网独家复现),CNN-BiLSTM融合改进篇 强化CAN总线数据感知、助力多类型入侵检测、实时响应预警、车载场景有效落地

基于AI的入侵检测系统是汽车网络安全领域的重要技术突破,能够有效应对日益复杂的网络攻击威胁。随着AI技术的不断发展和普及,AI入侵检测系统将在汽车安全领域发挥越来越重要的作用。对于汽车制造商和供应商来说,实施AI入侵检测系统不仅是保障车辆安全的需要,也是提升市场竞争力的重要手段。未来,AI入侵检测系统将成为智能汽车的标准配置,为用户提供更加安全、可靠的驾驶体验。

getusushu的博客 86

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

1035 插入与归并 (25 分) 根据维基百科的定义: 插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列。每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置。如此迭代直到全部元素有序。 归并排序进行如下迭代操作:首先将原始序列看成 N 个只包含 1 个元素的有序子序列,然后每次迭代归并两个相邻的有序子序列,直到最后只剩下 1 个有序的序列。 现给定原始序列和由某排序...

zhubeibei_的博客 376

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

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

1034 有理数四则运算 (20分) [分数] 第一次进入优快云写文章,需要学习的地方还有很多 本题要求编写程序,计算 2 个有理数的和、差、积、商。 输入格式: 输入在一行中按照 a1/b1 a2/b2 的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前,分母不为 0。 输入样例 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 / (

abcdefghikk的博客 996

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

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

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

忘梦心的博客 383

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

上一篇: 1033 旧键盘打字 (20 分) 坑点
下一篇: 1035 插入与归并 (25 分)
Linuxsen
博客等级 码龄9年 4粉丝 98原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值