|
发表于 2017-11-18 22:03:15
|
显示全部楼层
- import random as r
- class Solution:
- def fracAdd(self, mo_1, den_1, mo_2, den_2):
- """
- :type mo_1, den_1, mo_2, den_2: int
- :rtype: tuple
- """
- if den_1 == 0 or den_2 == 0:
- return "请输入分母非零的分数"
- else:
- den_3 = den_1 * den_2
- temp_1 = mo_1 * den_2
- temp_2 = mo_2 * den_1
- mo_3 = temp_1 + temp_2
- if mo_3 == 0:
- return(0, 0)
- else:
- factor= self.judge(mo_3, den_3)
- mo_3 //= factor
- den_3 //= factor
- return (mo_3, den_3)
- def judge(self, x, y):
- a = min(abs(x), abs(y))
- factor = 1
- for i in range(2, (a+3)//2):
- if x % i == 0 and y % i == 0:
- factor = i
- if x * y > 0:
- return factor
- elif x * y < 0:
- return -factor
- # 测试用例
- a = Solution()
- range_area = [-100,100]
- n = 100
- for i in range(n):
- mo_1 = r.randint(range_area[0],range_area[1])
- den_1 = r.randint(range_area[0],range_area[1])
- mo_2 = r.randint(range_area[0],range_area[1])
- den_2 = r.randint(range_area[0],range_area[1])
- print(mo_1, den_1, mo_2, den_2, a.fracAdd(mo_1, den_1, mo_2, den_2), end='\n')
复制代码 |
评分
-
查看全部评分
|