166 Fraction to Recurring Decimal
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)"
@tog-top100

Algorithm

Int needs to be converted to long type before taking the absolute value.

To find the cycle is to get another number, see if this number appears before. In order to save search time, we use a hash table to store the number in each decimal position.

There is also a little trick, because you have to calculate each decimal position, the method adopted is to multiply the remainder by 10 each time, and then divide by the divisor, the quotient obtained is the next digit of the decimal. When the newly calculated number has appeared before in map, add a left parenthesis at the beginning of the loop and a right parenthesis at the end.