首页 > 试题广场 >

Rational Sum (20)

[编程题]Rational Sum (20)
  • 热度指数:8899 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
Given N rational numbers in the form "numerator/denominator", you are supposed to calculate their sum.

输入描述:
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.


输出描述:
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.
示例1

输入

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

输出

3 1/3

python solution,使用Fraction库,真简单。看了一下大家的解法,也就这个代码量最少了:

from fractions import Fraction
a,b,res=input(),input().split(),Fraction(0)
for i in b:
    res+=Fraction(i)
if res.numerator<res.denominator:
    print(res)
else:
    aa=res.numerator//res.denominator
    bb=res.numerator%res.denominator
    print(str(aa)+" "+str(bb)+"/"+str(res.denominator))
编辑于 2017-10-09 09:45:51 回复(0)

问题信息

难度:
2条回答 11023浏览

热门推荐

通过挑战的用户