Middle-题目128：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.
For example,
Given numerator = 1, denominator = 2, return “0.5”.
Given numerator = 2, denominator = 1, return “2”.
Given numerator = 2, denominator = 3, return “0.(6)”.

public class Solution {
public String fractionToDecimal(int numerator, int denominator) {
if (numerator == 0) return "0";
if (denominator == 0) return "";

String ans = "";

//如果结果为负数
if ((numerator < 0) ^ (denominator < 0)) {
ans += "-";
}

//下面要把两个数都转为正数，为避免溢出，int转为long
long num = numerator, den = denominator;
num = Math.abs(num);
den = Math.abs(den);

//结果的整数部分
long res = num / den;
ans += String.valueOf(res);

//如果能够整除，返回结果
long rem = (num % den) * 10;
if (rem == 0) return ans;

//结果的小数部分
HashMap<Long, Integer> map = new HashMap<Long, Integer>();
ans += ".";
while (rem != 0) {
//如果前面已经出现过该余数，那么将会开始循环
if (map.containsKey(rem)) {
int beg = map.get(rem); //循环体开始的位置
String part1 = ans.substring(0, beg);
String part2 = ans.substring(beg, ans.length());
ans = part1 + "(" + part2 + ")";
return ans;
}

//继续往下除
map.put(rem, ans.length());
res = rem / den;
ans += String.valueOf(res);
rem = (rem % den) * 10;
}

return ans;
}
}

5ms,beats 19.25%,众数4ms,59.22%
Cmershen的碎碎念：

• 本文已收录于以下专栏：

LeetCode(166) Fraction to Recurring Decimal

• feliciafay
• 2015年01月09日 14:16
• 2259

leetcode 166: Fraction to Recurring Decimal

Fraction to Recurring Decimal Total Accepted: 3168 Total Submissions: 27432 Given two intege...
• xudli
• 2015年01月06日 09:54
• 2088

【LeetCode】Fraction to Recurring Decimal【Solution】

【题目】 Given two integers representing the numerator and denominator of a fraction, return the fr...
• ljiabin
• 2014年12月19日 11:13
• 12554

【leetcode 哈希表】Fraction to Recurring Decimal

leetcode新题，哈希表，Fraction to Recurring Decimal 。题意：给定两个整型数，一个代表分子numerator，一个代表分母denominator，以小数的形式返回它...
• u012162613
• 2014年12月18日 02:11
• 9018

166. Fraction to Recurring Decimal

166. Fraction to Recurring Decimal 题目描述：Given two integers representing the numerator and denominat...
• mupengfei6688
• 2018年01月14日 17:06
• 55

166. Fraction to Recurring Decimal Leetcode Python

Given two integers representing the numerator and denominator of a fraction, return the fraction in ...
• hyperbolechi
• 2015年03月24日 07:47
• 762

166. Fraction to Recurring Decimal

Given two integers representing the numerator and denominator of a fraction, return the fraction in ...
• sjt091110317
• 2015年06月03日 20:45
• 454

[LeetCode] 166. Fraction to Recurring Decimal

LeetCode
• hiimdaosui
• 2016年09月14日 13:07
• 163

[LeetCode]166. Fraction to Recurring Decimal

Problem DescriptionGiven two integers representing the numerator and denominator of a fraction, retu...
• u012468264
• 2016年03月06日 15:17
• 137

LeetCode *** 166. Fraction to Recurring Decimal

• treeshy
• 2016年04月27日 22:17
• 143

举报原因： 您举报文章：Middle-题目128：166. Fraction to Recurring Decimal 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)