PAT Basic 1034
1034 有理数四则运算
本题要求编写程序,计算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
题解:这道题看起来蛮复杂的,不过没有啥陷阱,直接写就好了。
知识点复习:
int gcd(int a, int b){
if (a%b == ) {
return b;
}
return gcd(b, a%b);
}
辗转相除法求最大公因数要记牢
代码如下:
#include<iostream> using namespace std;
/*辗转相除法*/
int gcd(int a, int b){
if (a%b == ) {
return b;
}
return gcd(b, a%b);
}
/*输出化简后的数 */
void f( long long int a, long long int b){
int k = , ac = , c = ;
if( a == ){
printf("");
return ;
}
if(a < ) {
ac = ;
a = -a;
}
if( a/b >= ){
k = a/b;
a = a%b;
if(!ac) k = -k;
}
if( a!= ){
c = gcd(a,b);
while( c != ){
a = a/c;
b = b/c;
c = gcd(a,b);
}
}
if(!ac) printf("(");
if(k) printf("%d",k);
if(a) {
if(k) printf(" ");
if(!ac && !k)
printf("%lld/%lld",-a,b);
else
printf("%lld/%lld",a,b);
}
if(!ac) printf(")");
} int main()
{
long long int a1, a2, b1, b2, c1, c2;
scanf("%lld/%lld %lld/%lld",&a1,&a2,&b1,&b2);
c1 = a1*b2 + a2*b1;
c2 = a2*b2;
f(a1,a2);
printf(" + ");
f(b1,b2);
printf(" = ");
f(c1,c2);
printf("\n");
c1 = a1*b2 - a2*b1;
c2 = a2*b2;
f(a1,a2);
printf(" - ");
f(b1,b2);
printf(" = ");
f(c1,c2);
printf("\n");
c1 = a1*b1;
c2 = a2*b2;
f(a1,a2);
printf(" * ");
f(b1,b2);
printf(" = ");
f(c1,c2);
printf("\n");
c1 = a1*b2;
c2 = a2*b1;
if( c2 < ){
c1 = -c1;
c2 = -c2;
}
f(a1,a2);
printf(" / ");
f(b1,b2);
printf(" = ");
if(b1){
f(c1,c2);
}
else cout<<"Inf";
return ;
}
PAT Basic 1034的更多相关文章
- PAT Basic 1034 有理数四则运算(20) [数学问题-分数的四则运算]
题目 本题要求编写程序,计算2个有理数的和.差.积.商. 输⼊格式: 输⼊在⼀⾏中按照"a1/b1 a2/b2"的格式给出两个分数形式的有理数,其中分⼦和分⺟全是整型范围内的整数, ...
- PAT (Basic Level) Practise (中文)-1034. 有理数四则运算(20)
PAT (Basic Level) Practise (中文)-1034. 有理数四则运算(20) http://www.patest.cn/contests/pat-b-practise/1034 ...
- PAT甲级1034. Head of a Gang
PAT甲级1034. Head of a Gang 题意: 警方找到一个帮派的头的一种方式是检查人民的电话.如果A和B之间有电话,我们说A和B是相关的.关系的权重被定义为两人之间所有电话的总时间长度. ...
- PAT Basic 1057
1057 数零壹 给定一串长度不超过 105 的字符串,本题要求你将其中所有英文字母的序号(字母 a-z 对应序号 1-26,不分大小写)相加,得到整数 N,然后再分析一下 N 的二进制表示中有 ...
- PAT (Basic Level) Practise (中文)-1039. 到底买不买(20)
PAT (Basic Level) Practise (中文)-1039. 到底买不买(20) http://www.patest.cn/contests/pat-b-practise/1039 小红 ...
- PAT (Basic Level) Practise (中文)- 1022. D进制的A+B (20)
PAT (Basic Level) Practise (中文)- 1022. D进制的A+B (20) http://www.patest.cn/contests/pat-b-practise/1 ...
- PAT (Basic Level) Practise (中文)- 1024. 科学计数法 (20)
PAT (Basic Level) Practise (中文)- 1024. 科学计数法 (20) http://www.patest.cn/contests/pat-b-practise/1024 ...
- PAT (Basic Level) Practise (中文)-1025. 反转链表 (25)
PAT (Basic Level) Practise (中文)-1025. 反转链表 (25) http://www.patest.cn/contests/pat-b-practise/1025 ...
- PAT (Basic Level) Practise (中文)- 1026. 程序运行时间(15)
PAT (Basic Level) Practise (中文)- 1026. 程序运行时间(15) http://www.patest.cn/contests/pat-b-practise/10 ...
随机推荐
- 洛谷P2514||bzoj2426 [HAOI2010]工厂选址
洛谷P2514 bzoj2426 其实是个简单的贪心,然而不适合在脑子不清醒的时候做...看不懂题意续了1个小时 很容易发现应该枚举新建哪个发电厂,对于这种方案就是取其中b吨煤运到原来发电厂,取剩下( ...
- bzoj 5449 序列
https://www.lydsy.com/JudgeOnline/problem.php?id=5449 话说很早以前做过..算是IDA*的板子吧,一个简单的估价函数就可以过去了 %:pragma ...
- 接口测试02 - 无法绕过的json解析
概述: 先瞧一下什么是json.JSON(JavaScript Object Notation,JS对象标记)是一种轻量级的数据交换格式. 它基于ECMAScript(w3c定制的js规范)的一个子集 ...
- simhash与重复信息识别
在工作学习中,我往往感叹数学奇迹般的解决一些貌似不可能完成的任务,并且十分希望将这种喜悦分享给大家,就好比说:“老婆,出来看上帝”…… 随着信息爆炸时代的来临,互联网上充斥着着大量的近重复信息,有效地 ...
- python flask学习(3)
这次主要学习web表单.学了下,很像是Django的form表单验证.不过有许多的不同.可以说是功能更加碎块化.Django的验证方式是很固定和严谨的,风格完全不同. 尽管Flask的请求对象提供的对 ...
- webpack 精华文章
最近迁移 webpack1 到 webpack3 碰到了一些问题,还是通过一些文章,解决了问题.在这里做一个备份,方便以后使用. 从零搭建vue2+vue-router2+webpack3工程 Web ...
- div 绝对定位
div绝对居下 .Phone2title{ width:%; height:30px; line-height:30px; /*text-align:left;*/ /*background-colo ...
- iOS:让UIView覆盖导航栏
当我们想做一个弹出式菜单时,想将导航栏也一起盖住不显示的话,可以用如下语句实现: UIView* myView = /* 你自定义的view */; UIWindow* currentWindow = ...
- ubuntu 14.04 配置java 1.8环境变量
从官网上下载jdk 源文件,并解压 root@hett-PowerEdge-T30:/usr/local/src# tar -xzvf jdk-8u151-linux-x64.tar.gz 解压完成之 ...
- Session 机制和 Cookie 机制
Session 机制和 Cookie 机制 HTTP协议是无状态的, 而Cookie和Session都是在无状态的基础上希望实现有状态的效果, 两者是在客户端或者是服务端使用缓存等手段来实现状态的维护 ...