python里的内置函数 可以根据他的函数名重写他的内置函数
加法 | p1 + p2 | p1.__add__(p2) |
减法 | p1 - p2 | p1.__sub__(p2) |
乘法 | p1 * p2 | p1.mul(p2) |
次幂 | p1 ** p2 | p1.__pow__(p2) |
除法 | p1 / p2 | p1.__truediv__(p2) |
整除 | p1 // p2 | p1.__floordiv__(p2) |
模 (modulo) | p1 % p2 | p1.__mod__(p2) |
class Fraction:
def __init__(self,numerator = 0, denominator = 1):
if denominator == 0:
raise ZeroDivisionError("denominator cannot be zero")
if numerator == 0:
self._numerator = 0
self._denomoinator = 1
else:
if(numerator<0 and denominator>0)or(numerator>0 and denominator<0):
flag = -1
else:
flag = 1
a = abs(numerator)
b = abs(denominator)
while a%b != 0:
tempA = a
tempB = b
a = tempB
b = tempA % tempB
self._numerator = abs(numerator)//b*flag
self._denominator = abs(denominator)//b
# 请在此处添加代码 #
#根据测试用例的,重载某些方法,实现定制类#
# *************begin************#
def __add__(self,other):
numerator = self._numerator * other._denominator + self._denominator * other._numerator
denominator = self._denominator * other._denominator
return Fraction(numerator,denominator)
def __sub__(self,other):
numerator = self._numerator * other._denominator - self._denominator * other._numerator
denominator = self._denominator * other._denominator
return Fraction(numerator,denominator)
def __str__(self):
return "{}/{}".format(self._numerator,self._denominator)
# **************end*************#
a = int(input())
b = int(input())
frac1 = Fraction(a,b)
c = int(input())
d = int(input())
frac2 = Fraction(c,d)
resultSUB = frac1-frac2
print(resultSUB)
resultADD = frac1+frac2
print(resultADD)