题目
思路
题目不难,主要是要考虑输出形式的最简代分数。
很繁琐,主要是利用最大公约数对假分数进行化简
代码
def max_gongyue(a, b):
while (b != 0):
temp = a % b
a = b
b = temp
return a
def jia_fenshu(a_fenzi,a_fenmu):
a_int=0
gongyue=max_gongyue(abs(a_fenzi),a_fenmu)
a_fenzi=int(a_fenzi/gongyue)
a_fenmu=int(a_fenmu/gongyue)
a_int = int(a_fenzi / a_fenmu)
if a_fenzi==0:
return '0'
if a_int==0:
if a_fenzi<0 or a_fenmu<0:
return '('+str(a_fenzi)+'/'+str(a_fenmu)+')'
else:
return str(a_fenzi) + '/' + str(a_fenmu)
if a_int>0:
a_fenzi = abs(a_fenzi) - abs(a_int)*a_fenmu
if a_fenzi==0:
return str(a_int)
else:
return str(a_int)+' '+ str(abs(a_fenzi)) + '/' + str(a_fenmu)
if a_int<0 :
a_fenzi = abs(a_fenzi) - abs(a_int)*a_fenmu
if a_fenzi==0:
return '('+str(a_int)+')'
else:
return '('+str(a_int)+' '+ str(abs(a_fenzi)) + '/' + str(a_fenmu)+')'
import sys
a,b=sys.stdin.readline().split(' ')
a_fenzi,a_fenmu=map(int,a.split('/'))
b_fenzi,b_fenmu=map(int,b.split('/'))
jia_fenzi=b_fenmu*a_fenzi+b_fenzi*a_fenmu
jia_fenmu=b_fenmu*a_fenmu
jian_fenzi=b_fenmu*a_fenzi-b_fenzi*a_fenmu
jian_fenmu=b_fenmu*a_fenmu
cheng_fenzi=a_fenzi*b_fenzi
cheng_fenmu=b_fenmu*a_fenmu
chu_fenzi=a_fenzi*b_fenmu
chu_fenmu=b_fenzi*a_fenmu
print(jia_fenshu(a_fenzi,a_fenmu),'+',jia_fenshu(b_fenzi,b_fenmu),'=',jia_fenshu(jia_fenzi,jia_fenmu))
print(jia_fenshu(a_fenzi,a_fenmu),'-',jia_fenshu(b_fenzi,b_fenmu),'=',jia_fenshu(jian_fenzi,jian_fenmu))
print(jia_fenshu(a_fenzi,a_fenmu),'*',jia_fenshu(b_fenzi,b_fenmu),'=',jia_fenshu(cheng_fenzi,cheng_fenmu))
if chu_fenmu!=0:
print(jia_fenshu(a_fenzi,a_fenmu),'/',jia_fenshu(b_fenzi,b_fenmu),'=',jia_fenshu(chu_fenzi,chu_fenmu))
else:
print(jia_fenshu(a_fenzi, a_fenmu), '/', jia_fenshu(b_fenzi, b_fenmu), '=', 'Inf')