PAT 1081 Rational Sum [分数的四则运算] [最大公约数和最小公倍数]

莫比乌斯反演 本文从算法竞赛和数论角度出发,系统介绍了狄利克雷卷积与莫比乌斯反演的核心概念。首先定义了数论函数及其基本性质,重点阐述了狄利克雷卷积的代数结构(交换环)和关键恒等式(如μ*1=ε)。随后通过卷积视角简化了莫比乌斯反演的证明过程。最后将理论提升至抽象代数层面,揭示这些数论工具本质上是偏序集关联代数在整除关系下的特例,其中莫比乌斯函数对应Zeta函数的逆元。全文展现了数学概念从具体到抽象的升华过程,为理解这些工具提供了更深刻的代数视角。 阅读详情

Given N rational numbers in the form numerator/denominator, you are supposed to calculate their sum.

Input Specification:

Each input file contains one test case. Each case starts with a positive integer N (≤100), followed in the next line N rational numbers a1/b1 a2/b2 ...where all the numerators and denominators are in the range of long int. If there is a negative number, then the sign must appear in front of the numerator.

Output Specification:

For each test case, output the sum in the simplest form integer numerator/denominator where integer is the integer part of the sum, numerator <denominator, and the numerator and the denominator have no common factor. You must output only the fractional part if the integer part is 0.

Sample Input 1:

5
2/5 4/15 1/30 -2/60 8/3

Sample Output 1:

3 1/3

Sample Input 2:

2
4/3 2/3

Sample Output 2:

2

Sample Input 3:

3
1/3 -1/6 1/8

Sample Output 3:

7/24

-----------------------------------这是题目和解题的分割线-----------------------------------

对最大公约数和最小公倍数的考察。

注意,数据范围in the range of long int,当两个数据相乘的时候,最大可以达到long long。

给出几组容易错的数据

2   -4/3 8/6    // 0

2   1/3 -1/2    // -1/6

2   13/6 -7/6  // 1

不过这道题的数据十分非常相当弱,一些特例不通过也不会报错。

#include<stdio.h>
#include<stdlib.h>

struct node
{
	long long x,y;
}num[105],tmp,sum;

//最大公约数 
long long findGCD(long long a,long long b)
{
	if(b==0) return a;
	return findGCD(b,a%b);
}

node sumFx(node a,node b)
{
	long long maxG,minG,x,newx,newy;
	maxG = findGCD(a.y,b.y);
	//最小公倍数 = a*b/最大公约数 新的分母 
	minG = (a.y)*(b.y)/maxG;
	//新的分子 
	x = minG/a.y*a.x+minG/b.y*b.x;
	//约分(abs保证最大公约数为正数) 
	tmp.x = x/findGCD(abs(x),minG);
	tmp.y = minG/findGCD(abs(x),minG);
	return tmp;
}

int main()
{
	int i,n;
	long long x,y,minG,maxG;
	scanf("%d",&n);
	if(n==0) {printf("0");return 0;}
	scanf("%lld/%lld",&sum.x,&sum.y);
	for(i=1;i<n;i++)
	{
		scanf("%lld/%lld",&num[i].x,&num[i].y);
		if(num[i].x==0) continue;
		sum = sumFx(num[i],sum); //两两相加			
	}		
	//printf("%lld/%lld\n",sum.x,sum.y);
	if(!sum.x) {printf("0");return 0;}
	//如果分母大于等于分子,需比较绝对值 
	if(abs(sum.x)>=abs(sum.y))
	{
		printf("%lld",sum.x/sum.y);
		long long t = sum.x-sum.x/sum.y*sum.y;
		if(t) printf(" %lld/%lld",t,sum.y);
	} 	
	else printf("%lld/%lld",sum.x,sum.y);
	return 0;
}

 

从Gitee上部署视觉工程到Linux虚拟机 (使用SVM来识别装甲板的编号,此处手机上的图片中只有灯条没有数字,SVM无法识别出编号。这两行代码的意义是,当SVM识别不出或者识别不到编号时,把装甲板的编号默认为2号。找到自瞄程序中,数字识别类下的这两行代码,把注释去掉。这样,每次打开新的终端时,环境变量都会自动设置。(2)查看虚拟机设置选项,检查虚拟机USB接口是否为3.0及以上的接口。如果不是,要更改好。这样,每次打开新的终端时,环境变量都会自动设置。后,每次打开终端时自动设置这些环境变量,你可以将。打开第一个终端,用来挂ROS的内核启动页面。 阅读详情

相关推荐

FreeRTOS实战:STM32CubeMX配置USART+DMA实现高效串口通信(附完整代码)

本文详细介绍了如何使用FreeRTOS和STM32CubeMX配置USART与DMA实现高效串口通信。通过对比轮询、中断和DMA三种模式的性能差异,提供完整的STM32CubeMX配置步骤和代码实现,帮助开发者优化嵌入式系统的串口通信性能,显著提升数据吞吐量和系统响应速度。

weixin_29190169的博客 455

PAT-A-1081 Rational Sum 【最大公约数】【最小公倍数】

GivenNrational numbers in the formnumerator/denominator, you are supposed to calculate their sum. Input Specification: Each input file contains one test case. Each case starts with a positive integerN(≤100), followed in the next lineNrational numb...

gdc6916的博客 3万+

【React Native】源码分析之Native UI的封装和管理

转载请注明出处:http://blog.youkuaiyun.com/u013531824/article/details/54020287,谢谢。  ReactNative作为使用React开发Native应用的新框架,随着时间的增加,无论是社区还是个人对她的兴趣与日递增。此文目的是希望和大家一起欣赏一下ReactNative的部分源码。阅读源码好处多多,让攻城狮更溜的开发ReactNative应用的同时,也

Tiny的专栏 9778

PAT甲级刷题之路——A1081 Rational Sum

PAT甲级 A1081 Rational Sum(20分)PAT甲级 A1081 Rational Sum(20分)原题如下题目大意自己的想法答案反馈错误1错误2AC代码结语 PAT甲级 A1081 Rational Sum(20分) 从题目上来看应该是分数计算问题,不知道这次能不能猜对 原题如下 题目大意 哈哈,这道题有几个关键单词不认识,先猜个大意吧~ 给出N个分数由 分子/分母组成,需要...

qq_43677396的博客 579

Windows下Anaconda换清华镜像源最全指南(含常见问题解决)

本文提供了一份详尽的Windows系统下Anaconda配置清华镜像源的完整指南。针对网络下载缓慢的痛点,文章详细对比了命令行添加与直接编辑配置文件两种主流方法,并重点解决了配置过程中常见的文件缺失、安装失败、环境求解缓慢等疑难问题,帮助用户一劳永逸地提升包管理效率。

brandy的博客 337

ESP32对接百度智能云语音识别:从硬件配置到API调用的完整指南

本文详细介绍了ESP32对接百度智能云语音识别的完整流程,从硬件配置到API调用,涵盖麦克风选择、音频处理、错误处理及性能优化等关键环节。通过实战案例展示如何实现低成本、高效率的语音交互方案,特别适合智能硬件开发者参考。

weixin_29198045的博客 372

PAT 1081 Rational Sum python解法

1081 Rational Sum (20 分) Given N rational numbers in the form numerator/denominator, you are supposed to calculate their sum. Input Specification: Each input file contains one test case. Each case sta...

qq_36936510的博客 323

大模型训练方法全面解析:SFT、RFT、TRPO、DPO、PPO、GRPO、RLH、RLHF技术深度剖析

大模型训练方法全面解析 本文系统介绍了当前主流的大模型训练和对齐技术,包括监督微调(SFT)、拒绝采样微调(RFT)、信任域策略优化(TRPO)、直接偏好优化(DPO)、近端策略优化(PPO)等。这些方法各有特点:SFT简单高效但数据依赖性强;RFT通过质量筛选提升输出质量;TRPO训练稳定但计算复杂;PPO是RLHF核心算法,平衡探索与利用。文章详细分析了各方法的实现原理、优势劣势及适用场景,为开发者选择合适的大模型训练策略提供参考。

2795

PAT甲级 1081 Rational Sum (20 分)

\quad模拟分数运算。考察求最小公倍数,最大公约数算法,需要细心。 #include <bits/stdc++.h> using namespace std; // 求a和b的最大公约数 int gcd(int a, int b){ return a == 0 ? b : gcd(b % a, a); } long long gcd(long long a, long long ...

qq_40438165的博客 1447

Open3D 点云数学形态学滤波(Python版本)

Open3D 点云数学形态学滤波(Python版本)

dayuhaitang1的博客 1396

彻底摆脱文献只能读开头的痛苦!这款文献检索神器真能帮你跨越文献付费限制(附实操演示)

大家是不是有过这样的经历,好不容易通过关键词搜到了和自己主题高度相关的文献,想要快速获取文献信息,推进研究进度,却又因为付费或者需订阅才能下载PDF,而被劝退。粘贴完成后,点击搜索,搜索结果页面会显示这篇文献的相关信息,有的文献有“下载PDF”,有的文献则只有“求助PDF”,不管是哪种情况,直接点击进入;我这里点击的是“下载PDF”,接着它会跳转页面。我用 Book 学术下载过不少付费文献,实测下来 80% 左右的文献,都能通过它的求助方式成功获取到,只有少部分文献等待的时间会稍微久一些或者没办法下载。

qq_64378896的博客 163

PAT A1081 Rational Sum

测试点3不过,后来在每一次计算后都进行化简后过。 #include <iostream> using namespace std; struct node { long long int son; long long int dad; }; int Gcd(long long int a,long long int b)//最大公约数 { long long int z=b; ...

qq_40737596的博客 318

假新闻检测论文分享(25)L-DefenseExplainable Fake News Detection With Large Language Model

现有的假新闻检测工作主要集中在通过深度网络结合多种信息来学习假新闻的潜在特征,如可信度、立场、传播模式、额外知识、域外数据等。尽管他们在探测上取得了成功,但受限于他们的黑箱性质,他们无法提供任何对公众至关重要的理由。为解决这一问题,一些研究致力于可解释假新闻检测(EFND),旨在同时生成准确性预测和解释。许多工作通过注意力机制在相关报道中注意突出特别的单词、短语或句子来提供可解释性。然而,这些工作只发现了对最终预测有高贡献的区域,缺乏直观和可信的解释。

weixin_41964296的博客 730

PAT A1081 Rational Sum ——垂死病中惊坐起

PAT A1081 Rational Sum 想不起来最小公倍数咋求了,可是我为啥要用最小公倍数通分呢。。。 最后一个测试点是结果=0的情况 最好全程使用long long,尤其注意输入的时候,如果用%d输给long long,会被符号扩展,负数挂掉 求gcd应该是用两个绝对值,否则可能求出来负数,进而可能使约分后分子上的负号跑到分母上,虽然在本题中这没有影响到各测试点的结果 #include <iostream> #include <algorithm> #include &l

weixin_40852534的博客 193

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

PAT甲级吧 1081 Rational Sum (20分) 暴力代码

PAT甲级吧 1081 Rational Sum (20分) 本题坑点int会导致导数第二个测试点答案错误或者浮点溢出,要考虑输出为0,输出分母为负,为正,带整数字,没带整数字的情况,附上本人暴力代码。本题暴力可以完美AC。方法为小学生都懂的哪种方法,注意最小公倍数等于两数之积除以最小公因数 #include <iostream> #include <cstdio> #include <map> #include <vector> #include <a

一棵小白菜的博客 292

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

PAT---1081 Rational Sum

题目是要输出几个分数的和,输出结果要求是输出真分数或带分数。 解题思路:计算过程中会用到求最大公约数(分子分母约分)和最小公倍数(求通分后的分母)的算法,而且考虑到本题数据比较大,故用long long来实现。 #include &lt;stdio.h&gt; #include &lt;map&gt; using namespace std; long long gcd(long long...

上帝是个娘们的博客 228

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

1081. Rational Sum (20)

1081. Rational Sum (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Given N rational numbers in the form "numerat

hduzhouli 940

PAT甲级真题 1081 Rational Sum (20分) C++实现(模拟分数加法)

题目 Given N rational numbers in the form “numerator/denominator”, you are supposed to calculate their sum. Input Specification: Each input file contains one test case. Each case starts with a positive ...

zhang35的博客 304

PAT1081 Rational Sum (20 分)

1. 除法和取余运算之前都要检查除数是否为0。 2. abs函数在cstdlib里,其它数学函数在cmath里。 3.辗转相除法求最大公约数,然后a/d*b求最小公倍数。 4.分数化简:为负时使分子问负分母为正(否则输出时负号位置会在分号后面);分子为0;最大公约数 5.分数输出:整数;假分数以带分数形式输出;真分数 #include <cstdio> //#include...

wxq的博客 283

PAT甲级1081 Rational Sum:[C++题解]分数求和、辗转相除法求最大公约数、long long有一个数据溢出

刷题

阿正的梦工坊 483

【PAT刷题甲级】1081.Rational Sum

1081 Rational Sum (20 分) Given N rational numbers in the form numerator/denominator, you are supposed to calculate their sum. Input Specification Each input file contains one test case. Each case starts with a positive integer N (≤100), followed in the nex

C_greenbird的博客 218

PAT 1081. Rational Sum (20)

1081. Rational Sum (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Given N rational numbers in the form "numerat

FrozenShore 426

PAT_1081 Rational Sum (20 分)

题目链接 思路很简单,先求所有分母的最小公倍数,即通分后分子相加,common就是最小公倍数,也是通分后的分母,获取整数部分resint=resa/common,获取分数部分的分子resa=resa%common,分母就是common,还需要进行约分,首先需要求分子分母的最大公约数,要注意分子为0时不能用gcd求最大公约数,因为用gcd辗转相除用到较小数当分母,而分母不能为0. 开始写的代码在pta练习集提交满分,但是在牛客网上对于下面的样例我的程序错误输出了1/-3,发现求-1和3的最大公约数时,因为3%

Kerin的博客 136

PAT1081Rational Sum

这道题只要知道最大公约数和最小公倍数的求法就可以做得出来,但是要考虑的输出细节比较繁琐,代码写的很丑啦,不过总算是全部case通过了。// // main.cpp // PTT2 // // Created by 潘婷婷 on 15-2-1. // Copyright (c) 2015年 潘婷婷. All rights reserved. // #include #include #

pantingting的专栏 533

个人练习-PAT甲级-1081 Rational Sum

题目链接https://pintia.cn/problem-sets/994805342720868352/problems/994805386161274880 简单题,好像在乙级也见过。最重要的两个点是求最大公约数和最小公倍数。 求最大公约数,用经典GCD long int mygcd(long int a, long int b) { long int temp = a; while (a % b != 0) { a = b; b = temp % b;

Rstln的博客 176

PAT_甲级_1081 Rational Sum (20point(s)) (C++)【字符串处理/辗转相除法/分数累加和】

目录 1,题目描述 题目描述 2,思路 注意 算法 3,AC代码 4,解题过程h 第一搏 辗转相除法 第二搏 第三搏 1,题目描述 rational:合理的; 理性的; 明智的; 理智的; 清醒的; numerator:(分数中的) 分子; denominator:分母; Sample Input 1: 5 2/5 4/15 1/30 -2/60 8...

&再见萤火虫&的博客 342
上一篇: PAT 1101 Quick Sort [模拟]
下一篇: PAT 1049 Counting Ones
DayDreammerⅠ
博客等级 码龄9年 9粉丝 122原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值