pat乙级1034
1.vs2013不能用scanf,改为scanf_s,但是提交时不能用scanf_s,用scanf。。。
scanf_s("%lld/%lld %lld/%lld", &a[], &a[], &b[], &b[]);
2.c++中数组作为函数参数时传递的是地址,会改变实参的值。
3.用printf输出string型变量时要加上“.c_str()”:
printf("%s + %s = %s\n", simple(a).c_str(), simple(b).c_str(), simple(r).c_str());
4.类型别名:
using LL = long long;
相乘时可能会超出整型范围,用long long。
代码:
#include <iostream>
#include <string>
using namespace std;
using LL = long long;//类型别名 LL gcd(LL a, LL b)
{
if (b == )
return a;
return gcd(b, a % b);
} string simple(LL a[])
{
LL m = a[], n = a[];
if (n < )
{
m = -m;
n = -n;
}
string s;
char c;
if (m < )
{
m = -m;
c = '-';
}
else c = '+'; LL g = gcd(m, n);//分子分母最大公约数
m = m / g;
n = n / g; LL r = m % n;
LL k = m / n;
if (k) s = to_string(k);
if (r && k) s += " ";
if (r) s = s + to_string(r) + "/" + to_string(n);
if (!k && !r) s = ""; if (c == '-') s = "(-" + s + ")";
return s;
}
void add(LL a[], LL b[])
{
LL r[];
r[] = a[] * b[] + b[] * a[];
r[] = a[] * b[];
printf("%s + %s = %s\n", simple(a).c_str(), simple(b).c_str(), simple(r).c_str());
}
void sub(LL a[], LL b[])
{
LL r[];
r[] = a[] * b[] - b[] * a[];
r[] = a[] * b[];
printf("%s - %s = %s\n", simple(a).c_str(), simple(b).c_str(), simple(r).c_str());
}
void motify(LL a[], LL b[])
{
LL r[];
r[] = a[] * b[];
r[] = a[] * b[];
printf("%s * %s = %s\n", simple(a).c_str(), simple(b).c_str(), simple(r).c_str());
}
void divide(LL a[], LL b[])
{
LL r[];
r[] = a[] * b[];
r[] = a[] * b[];
if (r[])
printf("%s / %s = %s\n", simple(a).c_str(), simple(b).c_str(), simple(r).c_str());
else
printf("%s / %s = Inf\n", simple(a).c_str(), simple(b).c_str());
}
int main()
{
LL a[], b[];
scanf_s("%lld/%lld %lld/%lld", &a[], &a[], &b[], &b[]); add(a, b);
sub(a, b);
motify(a, b);
divide(a, b); return ;
}
pat乙级1034的更多相关文章
- PAT乙级1034. 有理数四则运算(20)
本题要求编写程序,计算2个有理数的和.差.积.商. 输入格式: 输入在一行中按照“a1/b1 a2/b2”的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前,分 ...
- PAT乙级 1034
思路:是个水题,但是有坑.不能被题目忽悠了,题目保证正确的输出中没有超过整型范围的整数. 它只是保证结果不超出int,但是我们在运算过程中的乘法可能会超出int,直接把所有int改成long long ...
- C#版 - PAT乙级(Basic Level)真题 之 1021.个位数统计 - 题解
版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C#版 - P ...
- PAT乙级真题及训练题 1025. 反转链表 (25)
PAT乙级真题及训练题 1025. 反转链表 (25) 感觉几个世纪没打代码了,真是坏习惯,调了两小时把反转链表调出来了,心情舒畅. 这道题的步骤 数据输入,数组纪录下一结点及储存值 创建链表并储存上 ...
- PAT甲级1034. Head of a Gang
PAT甲级1034. Head of a Gang 题意: 警方找到一个帮派的头的一种方式是检查人民的电话.如果A和B之间有电话,我们说A和B是相关的.关系的权重被定义为两人之间所有电话的总时间长度. ...
- PAT 乙级 1024
题目 题目地址:PAT 乙级 1024 题解 模拟题,重点需要考虑到各种不同情况:简单来说一下: 因为输入格式固定,所以把不同的部分分别存储和处理可以在很大程度上简化运算:其中需要考虑最多的就是小数部 ...
- PAT 乙级 1017
题目 题目地址:PAT 乙级 1017 题解 粗看是一道大数除法题,实际上只不过是通过字符数组模拟除法过程,理解之后还是比较简单的: 具体分析一下本题: 因为题设中的除数(n)是一位整数,因此大幅简化 ...
- PAT 乙级 1015
题目 题目地址:PAT 乙级 1015 题解 常规题,难点在于理清楚排序规则,通过比较简洁的方式进行编码: 在这里我选择使用vector进行存储,并使用sort方法排序,因为本题不是简单按照大小排序, ...
- PAT 乙级 1003
题目 题目地址:PAT 乙级 1003 题解 规律观察题,本题的关键在于把题读懂,同时还有几个比较容易疏忽的地方需要注意:总之这道题要考虑的东西更多,细节上也要特别注意: 规律:“如果 aPbTc 是 ...
随机推荐
- C#中的运算符和表达式
说起C#运算符和表达式,小伙伴们肯定以为很简单,其实要用好表达式,不是一件容易的事.一个好的表达式可以让你做事半功倍的效果,比如三元表达式,可以让你少写N多个if和case语句. 表达式 由 操作数( ...
- [开发技巧]·Python极简实现滑动平均滤波(基于Numpy.convolve)
[开发技巧]·Python极简实现滑动平均滤波(基于Numpy.convolve) 1.滑动平均概念 滑动平均滤波法(又称递推平均滤波法),时把连续取N个采样值看成一个队列 ,队列的长度固定为N ...
- JSONCPP开发环境搭建
环境设置 项目地址 https://github.com/open-source-parsers/jsoncpp.git 操作系统 64位 Fedora 24 安装jsoncpp $ git clon ...
- BZOJ 1858【线段树】
题意: 0 a b 把 [a, b] 区间内的所有数全变成0 1 a b 把 [a, b] 区间内的所有数全变成1 2 a b 把 [a,b] 区间内的所有数全部取反 3 a b 询问 [a, ...
- python 关于时区
pytz提供了时区对象timezone 如果我们如此使用: tz = pytz.timezone('Asia/Shanghai') datetime.datetime(nYear, nMonth, n ...
- [转]SAP一句话入门SD模块
SD是Sales and Distribution的简称.在SAP系统中,销售与分销模块处在供应链下游,关注从客户订单到向客户收款的全过程. SD模块中的Sales好理解,而Distribution却 ...
- UVA307 Sticks
题意:一组等长的木棒,将它们随机的砍掉,得到若干根小木棍, 每一节小棍的长度都不超过50个单位.然后想把这些木棍拼接起来,恢复到裁剪前的状态, 但忘记了初始时有多少木棒以及木棒的初始长度.计算木棒的可 ...
- Travelling (三进制+状压dp)
题目链接 #include <bits/stdc++.h> using namespace std; typedef long long ll; inline ll read(){ ,f= ...
- POJ1045 Bode Plot
题目来源:http://poj.org/problem?id=1045 题目大意: 如图所示的交流电路,假设电路处于稳定状态,Vs为电源电压,w是频率,单位为弧度每秒,t表示时间. 则:V1 = Vs ...
- Proxy opening connection toSpringClound配置豪猪hystrixDashboard发生
Proxy opening connection to: http://localhost:8001/hystrix.stream 配置hystrixDashboard发生的错误.一直在寻找 最后发现 ...