-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathN166分数到小数.py
More file actions
38 lines (34 loc) · 1.09 KB
/
N166分数到小数.py
File metadata and controls
38 lines (34 loc) · 1.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
class Solution:
def fractionToDecimal(self, numerator: int, denominator: int) -> str:
result = []
if numerator * denominator < 0:
sign = -1
numerator = abs(numerator)
denominator = abs(denominator)
else:
sign = 1
result.append(str(numerator // denominator))
numerator %= denominator
# 小数部分
if numerator != 0:
result.append('.')
seen = dict()
numerator *= 10
cnt = 2
while numerator and numerator not in seen:
seen[numerator] = cnt
result.append(str(numerator // denominator))
numerator %= denominator
numerator *= 10
cnt += 1
# 还能继续计算说明无限循环
if numerator:
result.insert(seen[numerator], '(')
result.append(')')
ans = ''.join(result)
if sign == -1:
return '-' + ans
else:
return ans
s = Solution()
print(s.fractionToDecimal(-1, -6))