首页 > 代码库 > [leetcode]Fraction to Recurring Decimal
[leetcode]Fraction to Recurring Decimal
各种情况。有恶心的负数最值,用long long来做了。除此之外的情况下面都列出来了。
/*1, 8 = 0.1251, 6 = 0.1(6)-50, 6 = -6.250, -3 = 0-1, -2147483648 = "0.0000000004656612873077392578125"*/typedef long long llong;class Solution {public: string fractionToDecimal(int numerator, int denominator) { if (numerator == 0) { return "0"; } string result; llong n = numerator; llong d = denominator; if(n < 0 ^ d < 0 ) result+=‘-‘; n = abs(n); d = abs(d); result += to_string(n / d); llong r = n % d; if (r == 0) { return result; } else { result += ‘.‘; } unordered_map<int, int> map; while (r != 0) { if (map.find(r) != map.end()) { result.insert(map[r], 1, ‘(‘); result += ‘)‘; break; } map[r] = result.size(); r *= 10; result += to_string(r / d); r %= d; } return result; }};
[leetcode]Fraction to Recurring Decimal
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。