wordpress 屏蔽搜索,seo运营推广,网站建设安全与威胁,国外获奖网站题目描述#xff1a; 本题要求编写程序#xff0c;计算N个有理数的平均值。
输入格式#xff1a; 输入第一行给出正整数N#xff08;≤100#xff09;#xff1b;第二行中按照a1/b1 a2/b2 …的格式给出N个分数形式的有理数#xff0c;其中分子和分母全是整形范围内的整…题目描述 本题要求编写程序计算N个有理数的平均值。
输入格式 输入第一行给出正整数N≤100第二行中按照a1/b1 a2/b2 …的格式给出N个分数形式的有理数其中分子和分母全是整形范围内的整数如果是负数则负号一定出现在最前面。
输出格式 在一行中按照a/b的格式输出N个有理数的平均值。注意必须是该有理数的最简分数形式若分母为1则只输出分子。
代码实现
from math import gcd
N int(input())
s input().split()
fz,fm [],[] #分别保存分子分母约分后的结果的列表
maxm ,maxz 1,0
for f in s:z,m map(eval,f.split(/)) #提取分子分母y gcd(z,m) #最大公约数z z//ym m//ymaxm * m #通分后的分母fz.append(z)fm.append(m)
for i in range(N): #计算通分后的分子z (maxm//fm[i])*fz[i]maxz z
endz maxz//gcd(maxz,maxm*N) #平均值的分子
endm maxm*N//gcd(maxz,maxm*N) #平均值的分母
if endz % endm 0:print(endz//endm)
else:print({}/{}.format(endz,endm))