美文网首页
leetcode 分数到小数 python

leetcode 分数到小数 python

作者: DaydayHoliday | 来源:发表于2019-04-22 09:33 被阅读0次

    游标一定要记得在循环里不断增加

    class Solution(object):
        def fractionToDecimal(self, n, d):
            def sign(x):
                if x>0:
                    return 1
                if x<0:
                    return -1
                if x==0:
                    return 0
            if d==0:
                return 'NaN'
            if n==0:
                return '0'
            isNeg=False
            if sign(n)*sign(d)==-1:
                d=d*sign(d)
                n=n*sign(n)
                isNeg=True
            res=n//d
            rem=n%d
            if rem == 0:
                return '-'+str(res) if isNeg else str(res)
            dec_str=''
            dict_rem={}
            dec_cur=0
            while rem!=0 and rem not in dict_rem:
                dict_rem[rem]=dec_cur
                dec_str+=str(rem*10//d)
                rem=rem*10%d
                dec_cur+=1
            if rem == 0:
                return ('-' if isNeg else '')+str(res)+'.'+dec_str
            return ('-' if isNeg else '')+str(res)+'.'+dec_str[:dict_rem[rem]]+'('+dec_str[dict_rem[rem]:]+')'
    

    相关文章

      网友评论

          本文标题:leetcode 分数到小数 python

          本文链接:https://www.haomeiwen.com/subject/psmegqtx.html