没有什么难度,题目本身也没有设置刁难的考察点。但是就很麻烦,细节挺多的。第三个测试点超时了,不管了
1.学习了一下fraction库的使用
from fractions import Fraction
#numerator and denominator
def solve(p):
if p.numerator==0:
p=0
return p
elif p.denominator==1:
p=p.numerator
if str(p)[0]=='-':
p='('+str(p)+')'
return p
else:
return p
else:
num=0
fu=False
x=abs(p.numerator)
if str(p.numerator)[0]=='-':
fu=True
while x>abs(p.denominator):
x-=p.denominator
num+=1
if fu:
x=-1*x
num=num*(-1)
if num==0:
key=f'({x}/{p.denominator})'
else:
key=f'({num} {-1*x}/{p.denominator})'
else:
if num==0:
key=f'{x}/{p.denominator}'
else:
key=f'{num} {x}/{p.denominator}'
return key
text=input().split()
for p in range(len(text)):
text[p]=text[p].split('/')
a,b=eval(text[0][0]),eval(text[0][1])
c,d=eval(text[1][0]),eval(text[1][1])
x=solve(Fraction(a,b))
y=solve(Fraction(c,d))
he=solve(Fraction(a,b)+Fraction(c,d))
cha=solve(Fraction(a,b)-Fraction(c,d))
ji=solve(Fraction(a,b)*Fraction(c,d))
if c==0:
shang='Inf'
else:
shang=solve(Fraction(a,b)/Fraction(c,d))
print(f'{x} + {y} = {he}')
print(f'{x} - {y} = {cha}')
print(f'{x} * {y} = {ji}')
print(f'{x} / {y} = {shang}')