标签:pre str close parent while action 长度 put 除法
Given two integers representing the numerator and denominator of a fraction, return the fraction in string format.
If the fractional part is repeating, enclose the repeating part in parentheses.
Example 1:
Input: numerator = 1, denominator = 2
Output: "0.5"
Example 2:
Input: numerator = 2, denominator = 1
Output: "2"
Example 3:
Input: numerator = 2, denominator = 3
Output: "0.(6)"
class Solution:
def fractionToDecimal(self, numerator, denominator):
"""
:type numerator: int
:type denominator: int
:rtype: str
"""
negative = False
if numerator*denominator<0:
negative = True
n,m = abs(numerator),abs(denominator)
a = n//m
if a==n/m:
if negative:
return ‘-‘+str(a)
else:
return str(a)
temp = []
res = []
n = n%m
while True:
temp.append(n)
n *= 10
res.append(str(n//m))
n = n%m
if n==0:
if negative:
return ‘-‘ + str(a) + ‘.‘ + ‘‘.join(res)
else:
return str(a) + ‘.‘ + ‘‘.join(res)
if n in temp:
if negative:
return ‘-‘ + str(a) + ‘.‘ + ‘‘.join(res[:temp.index(n)]) + ‘(‘ + ‘‘.join(res[temp.index(n):]) + ‘)‘
else:
return str(a) + ‘.‘ + ‘‘.join(res[:temp.index(n)]) + ‘(‘ + ‘‘.join(res[temp.index(n):]) + ‘)‘
刚开始的思路是从商中找出循环体,这样的问题是由于不确定循环体长度和开始的位置,很难判断。但如果用除法的方式,从被除数中找出循环体就很简单了。
166. Fraction to Recurring Decimal
标签:pre str close parent while action 长度 put 除法
原文地址:https://www.cnblogs.com/bernieloveslife/p/9803470.html