博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
L1-009 N个数求和 (20 分)
阅读量:2061 次
发布时间:2019-04-29

本文共 937 字,大约阅读时间需要 3 分钟。

本题的要求很简单,就是求N个数字的和。麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式。

输入格式:

输入第一行给出一个正整数N(≤100)。随后一行按格式a1/b1 a2/b2 …给出N个有理数。题目保证所有分子和分母都在长整型范围内。另外,负数的符号一定出现在分子前面。

输出格式:

输出上述数字和的最简形式 —— 即将结果写成整数部分 分数部分,其中分数部分写成分子/分母,要求分子小于分母,且它们没有公因子。如果结果的整数部分为0,则只输出分数部分。

输入样例1:

5
2/5 4/15 1/30 -2/60 8/3
输出样例1:
3 1/3
输入样例2:
2
4/3 2/3
输出样例2:
2
输入样例3:
3
1/3 -1/6 1/8
输出样例3:
7/24

#include 
int Gcd(long a,long b) //求最大公约数{
if (b == 0) return a; int r = a % b; return Gcd(b, r);}int main(){
int n, flag = 0; long a, b, fenz = 0, fenm = 1; scanf("%d", &n); for (int i = 0; i < n; i++) {
scanf("%ld/%ld", &a, &b); fenz = fenz * b + a * fenm; //分子 fenm = fenm * b; //分母 long gcd = Gcd(fenz, fenm); fenz /= gcd; fenm /= gcd; } if (fenz && (fenz / fenm == 0)) printf("%ld/%ld", fenz, fenm); else if (fenz % fenm == 0) printf("%ld", fenz / fenm); else printf("%ld %ld/%ld", fenz / fenm, fenz % fenm, fenm); return 0;}

转载地址:http://anolf.baihongyu.com/

你可能感兴趣的文章
【SQL】group by 和order by 的区别。
查看>>
【F12】谷歌浏览器--前台效果可以在不访问服务器的前提下直接改样式看效果是否是预期值。...
查看>>
【Python】详解Python多线程Selenium跨浏览器测试
查看>>
Jmeter之参数化
查看>>
Shell 和Python的区别。
查看>>
Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结
查看>>
Loadrunner之https协议录制回放报错如何解决?(九)
查看>>
python中xrange和range的异同
查看>>
列表、元组、集合、字典
查看>>
【Python】easygui小甲鱼
查看>>
【Python】关于Python多线程的一篇文章转载
查看>>
【Pyton】【小甲鱼】文件
查看>>
【Pyton】【小甲鱼】永久存储:腌制一缸美味的泡菜
查看>>
【Pyton】【小甲鱼】异常处理:你不可能总是对的
查看>>
APP性能测试工具
查看>>
【Pyton】【小甲鱼】类和对象
查看>>
压力测试工具JMeter入门教程
查看>>
作为一名软件测试工程师,需要具备哪些能力
查看>>
【Pyton】【小甲鱼】类和对象:一些相关的BIF(内置函数)
查看>>
【Pyton】【小甲鱼】魔法方法
查看>>