patest吧 关注:1,484贴子:1,702
  • 0回复贴,共1

【新人求助】1034 有理数四则运算,测试点2一直过不了

只看楼主收藏回复

代码(python),代码贴进来格式会乱:
def ds(z,x,y):
m=abs(int(x))//int(y)
n=abs(int(x))%int(y)
if m!=0 and n!=0:
z=str(m)+' %s/%s'%(n,y)
elif m==0 and n!=0:
z='%s/%s'%(n,y)
elif m!=0 and n==0:
z=str(m)
else:
z=0
if int(x)<0:
z='(-%s)'%z
return z
from fractions import Fraction
a,b=input().split()
a1,a2=a.split('/')
b1,b2=b.split('/')
c=Fraction(int(a1),int(a2))
d=Fraction(int(b1),int(b2))
num='+-*/'
for i in num:
flag=0
if i=='+':
num1=str(c+d)
if i=='-':
num1=str(c-d)
if i=='*':
num1=str(c*d)
if i=='/':
if d==0:
flag=1
print('%s %s %s = Inf'%(ds(a,a1,a2),i,ds(b,b1,b2)))
else:
num1=str(c/d)
if flag==0:
if '/' in num1:
num11,num12=num1.split('/')
print('%s %s %s = %s'%(ds(a,a1,a2),i,ds(b,b1,b2),ds(num1,num11,num12)))
else:
if int(num1)<0:
num1='(%s)'%num1
print('%s %s %s = %s'%(ds(a,a1,a2),i,ds(b,b1,b2),num1))



IP属地:陕西1楼2019-11-29 12:10回复