首页 > 代码库 > [leetcode]Fraction to Recurring Decimal
[leetcode]Fraction to Recurring Decimal
一位一位的算嘛,如果出现了重复的余数那么就是循环节开始啦。
用hashtable记录下位置,好插入括号。
注意负数。
class Solution {public: string fractionToDecimal(int numerator, int denominator) { int sign1 = numerator >= 0 ? 1 : -1; int sign2 = denominator >= 0 ? 1 : -1; long long num = (long long)numerator; long long den = (long long)denominator; num = abs(num); den = abs(den); long long d = num / den; long long rem = num % den; unordered_map<long long, int> rec; string ans = to_string(d); if (sign1 * sign2 == -1 && (d > 0 || rem > 0)) ans = "-" + ans; if (rem == 0) return ans; ans = ans + "."; string r = ""; for (int pos = 0; rem != 0; pos++) { if (rec.find(rem) != rec.end()) { r.insert(rec[rem], "("); r = r + ")"; return ans + r; } rec[rem] = pos; r = r + to_string((rem * 10) / den); rem = (rem * 10) % den; } return ans + r; }};
[leetcode]Fraction to Recurring Decimal
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。