题目
编写函数,实现分数加减运算并输出结果,注意结果要化为最简分数。不考虑不合理的输入等特殊情况,比如分母不能为0。
格式
输入格式
输入形式A/B+C/D或者A/B-C/D,其中ABCD为整型。
输出格式
输出形式X/Y,或-X/Y,其中XY为正整数。如果结果为0,则直接输出0。
样例1
输入:
1/8+1/4输出:
3/8
程序
def gcd(a,b):if a<b:a,b = b,awhile(b!=0):tmp =aa = b# 求余数,循环次数更少# 作差,循环次数太多,超市b = tmp%breturn a
def yueshu(a,b):return int(a*b/gcd(a,b))def main():#code herestra = input()if "+" in stra:a,b =stra.split("+")a1,a2 =map(int,a.split("/"))b1,b2 =map(int,b.split("/"))c2 =yueshu(a2,b2)ca1 =int(a1*c2/a2)ca2 =int(b1*c2/b2)c1 = ca1+ca2if c1!=0:tmp=gcd(c1,c2)print("%d/%d"%(int(c1/tmp),int(c2/tmp)))else:print("0")else:a,b = stra.split("-")a1,a2 =map(int,a.split("/"))b1,b2 =map(int,b.split("/"))c2 =yueshu(a2,b2)ca1 =int(a1*c2/a2)ca2 =int(b1*c2/b2)c1 = ca1-ca2if c1!=0:tmp=gcd(c1,c2)if tmp>0:print("%d/%d"%(int(c1/tmp),int(c2/tmp)))else:print("%d/%d"%(int(-1*c1/tmp),int(-1*c2/tmp)))else:print("0")passif __name__ == '__main__':main();