|
发表于 2018-5-24 15:46:52
|
显示全部楼层
本帖最后由 萧丹夜 于 2018-5-24 16:02 编辑
- def add(a,b,c,d):
- y1 = a * d + b * c
- y2 = b * d
- return simp(y1,y2)
- def sub(a,b,c,d):
- y1 = a * d - b * c
- y2 = b * d
- return simp(y1,y2)
- def simp(y1,y2):
- i = 2
- while i <= y2:
- if y1 % i == 0 and y2 % i == 0:
- y1,y2 = y1 // i,y2 // i
- i = 1
- i += 1
- return y1,y2
- def jug(x):
- if ' ' not in x:
- return int(x),1
- else:
- return map(int,x.split())
- x1 = input('请输入第一个数分子和分母:')
- x2 = input('请输入第二个数分子和分母:')
- a,b = jug(x1)
- c,d = jug(x2)
- k = input('请输入你想要做的运算(+/-):')
- if k == '+':
- y1,y2 = add(a,b,c,d)
- elif k == '-':
- y1,y2 = sub(a,b,c,d)
- else:
- print('输入有误!')
- if y1 % y2 != 0:
- if b == 1:
- print('%d %c %d/%d = %d/%d ' %(a,k,c,d,y1,y2))
- elif d == 1:
- print('%d/%d %c %d = %d/%d ' %(a,b,k,c,y1,y2))
- else:
- print('%d/%d %c %d/%d = %d/%d ' %(a,b,k,c,d,y1,y2))
- else:
- if b == 1:
- print('%d %c %d/%d = %d ' %(a,k,c,d,y1//y2))
- elif d == 1:
- print('%d/%d %c %d = %d ' %(a,b,k,c,y1//y2))
- else:
- print('%d/%d %c %d/%d = %d ' %(a,b,k,c,d,y1//y2))
复制代码 |
|