# 分数到小数

给定两个整数,分别表示分数的分子 numerator 和分母 denominator,以 字符串形式返回小数

如果小数部分为循环小数,则将循环的部分括在括号内。

如果存在多个答案,只需返回 任意一个

对于所有给定的输入,保证 答案字符串的长度小于 104

 

示例 1:

输入:numerator = 1, denominator = 2
输出:"0.5"

示例 2:

输入:numerator = 2, denominator = 1
输出:"2"

示例 3:

输入:numerator = 2, denominator = 3
输出:"0.(6)"

示例 4:

输入:numerator = 4, denominator = 333
输出:"0.(012)"

示例 5:

输入:numerator = 1, denominator = 5
输出:"0.2"

 

提示:

## template ```java class Solution { public String fractionToDecimal(int numerator, int denominator) { if (numerator == 0) return "0"; StringBuilder str = new StringBuilder(); if (numerator < 0 ^ denominator < 0) str.append('-'); long dividend = Math.abs(Long.valueOf(numerator)); long divisor = Math.abs(Long.valueOf(denominator)); str.append(String.valueOf(dividend / divisor)); long remainter = dividend % divisor; if (remainter == 0) return str.toString(); str.append('.'); Map map = new HashMap<>(); while (remainter != 0) { if (map.containsKey(remainter)) { str.insert(map.get(remainter), "("); str.append(")"); break; } map.put(remainter, str.length()); remainter *= 10; str.append(String.valueOf(remainter / divisor)); remainter %= divisor; } return str.toString(); } } ``` ## 答案 ```java ``` ## 选项 ### A ```java ``` ### B ```java ``` ### C ```java ```