PAT A1081 Rational Sum ——垂死病中惊坐起
PAT A1081 Rational Sum
- 想不起来最小公倍数咋求了,可是我为啥要用最小公倍数通分呢。。。
- 最后一个测试点是结果=0的情况
- 最好全程使用long long,尤其注意输入的时候,如果用%d输给long long,会被符号扩展,负数挂掉
- 求gcd应该是用两个绝对值,否则可能求出来负数,进而可能使约分后分子上的负号跑到分母上,虽然在本题中这没有影响到各测试点的结果
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <queue>
#include <math.h>
#include <set>
#include <map>
#include <unordered_map>
#include <stack>using namespace std;struct Real{long long intpart = 0;long long nu = 0;long long de = 1;
};
vector<Real> vr;long long getgcd(long long a,long long b){while(a % b != 0){long long tmp = a % b;a = b;b = tmp;}return b;
}long long getlcm(long long a,long long b){return a / getgcd(a,b) * b;
}Real add(Real r1,Real r2){Real r;r.de = r1.de * r2.de;r.nu = r1.nu * r2.de + r2.nu * r1.de;long long gcd = getgcd(r.nu,r.de);//cout << r.nu << ' ' << r.de << ' ' << gcd << endl;r.de /= gcd;r.nu /= gcd;return r;
}#define DEBUG int main(){#ifdef DEBUGfreopen("1.txt","r",stdin);
#endifint num;cin >> num;vr.resize(num);Real ans;for(int i = 0;i < num;i ++){scanf("%lld/%lld",&vr[i].nu,&vr[i].de);ans = add(ans,vr[i]);}int sign = 0;if(ans.nu < 0){sign = -1;ans.nu = -ans.nu;}if(sign == -1) cout << '-';if(ans.nu < ans.de){if(ans.nu == 0) cout << 0;else cout << ans.nu << '/' << ans.de;}else{cout << ans.nu / ans.de;if(ans.nu % ans.de) cout << ' ' << ans.nu % ans.de << '/' << ans.de;}return 0;
}
PAT A1081 Rational Sum ——垂死病中惊坐起相关推荐
- 【PAT】Rational Sum
题目描述 Given N rational numbers in the form "numerator/denominator", you are supposed to cal ...
- PAT甲级1081 Rational Sum:[C++题解]分数求和、辗转相除法求最大公约数、long long有一个数据溢出
文章目录 题目分析 题目来源 题目分析 来源:acwing 分析 数据量很小,直接模拟分数加法即可,分数加法如下: ab+cd=ad+bcbd\frac{a}{b}+\frac{c}{d}=\frac ...
- 垂死病中惊坐起_我如何开始恢复垂死的软件团队的过程
垂死病中惊坐起 by Victoriya Kalmanovich 由Victoriya Kalmanovich 我如何开始恢复垂死的软件团队的过程 (How I started the process ...
- PAT甲级1104 Sum of Number Segments:[C++题解]数段之和,测试点2爆double,请用long double!!!
文章目录 题目分析 题目链接 题目分析 来源:acwing 分析:本题题意比较简单,但是不能仅仅根据定义来算. 本题思路:统计每个数在多少个区间出现过,也就是这个数需要加多少次.共有n个数,其中第i个 ...
- 1081 Rational Sum (20 分) 分数加法 简单模拟
1081 Rational Sum (20 分) Given N rational numbers in the form numerator/denominator, you are suppose ...
- 垂死病中惊坐起,好好锻炼来得及
有一句话是这么说的,人如果不逼自己一把,都不知道自己有多牛逼. 以前吧,我都是觉得,我自己不牛逼,就是逼自己一把,也没有什么了不起的.所以,我基本上就是得过且过吧.看见别人成功,心里一定嫉妒,但是要我 ...
- 1081. Rational Sum (20)-PAT甲级真题
Given N rational numbers in the form "numerator/denominator", you are supposed to calculat ...
- PAT甲级 1081 Rational Sum 分数相加的和
代码如下: //求分数相加的和 #include<iostream> #include<stdio.h> #include<math.h> using namesp ...
- 1081 Rational Sum (20 分)_22行代码AC
立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 Given N rational numbers in the form numerator/denominator, you a ...
最新文章
- symfony小练习-表白墙
- wordpress前台编辑文章_9款 WordPress 最美极简主题推荐
- VC++ 保存数据为音频文件(WAV)学习
- Asp.Net MVC中的RenderPartial 和 RenderAction 【转】
- BZOJ1798: [Ahoi2009]Seq 维护序列seq
- golang mysql curd_Go 语言操作 MySQL 之 CURD 操作
- Magento怎么升级?
- VMware中的三种网络模式-----NAT模式
- 进程间通信(五)—信号
- keil的configuration wizard配置和使用
- 百度网站收录批量查询 介绍百度网站收录批量查询3种方式
- IPv6安装及使用手册
- ad 新建一个componen的类_Glyphs智能母件:字体设计师的好帮手 Glyphs smart Component: a good helper font designer...
- 复旦python课补考_复旦学姐说:“这段科研,最终帮助我这个零经验小白拿下了量化岗实习!”...
- python dataframe dropna_在Python中使用熊猫在两个DataFrame之间进行值...
- java 2%3等于多少,Java别说取余(%)运算简单你真的会吗
- Axure RP 8.1下载 +汉化
- 2021年日历记事备忘录(A4可打印版)
- 正益王国春:AppCan 为HTML5移动创新与创业而生
- 胡歌热播剧《猎场》遭差评 “程序猿”用自然语言分析揭真相
热门文章
- 帧同步和状态同步笔记
- 第一位iPhone Hacker新作:单人之力实现自动驾驶汽车
- 在计算机领域的英语短语,初一英语:Unit 5Abilities重点短语汇总
- Python实现输入电影名字自动生成豆瓣评论词云图!
- Python-Django毕业设计宾馆管理信息系统(程序+Lw)
- 超硬核,30 张图解 HTTP 常见的面试题
- 程序员必学!java资料百度网盘
- 前端新兴十大框架!!!
- runtime error: member access within null pointer of type ‘MyLinkedList::ListNode‘ (solution.cpp)
- 【进阶指南】数据结构 - 楼兰图腾【BIT】