166. Fraction to Recurring Decimal
来源:互联网 发布:node v6.3.0 x64.msi 编辑:程序博客网 时间:2024/05/17 19:20
今天华为出了这么一道面试题,当时我一紧张,没写出来。。。关键是记录循环小数,采用map结构。
注意leetcode上这道题要防止溢出。将int 转换为long。一般来说int为4个字节,如果long也为4个字节的话,这样转换还是不成功的,由此我推断leetcode系统的编译器应该是64位的,这样long是8个字节,这样就避免了溢出。
class Solution {public:string fractionToDecimal(int numerator, int denominator) {if (numerator == 0)return "0";if (denominator == 0)return "";string result;if (numerator < 0 ^ denominator < 0){result += '-';}long num = abs((long)numerator);long den = abs((long)denominator);long t1 = num / den;long t2 = num%den;if (t2 == 0)return result + to_string(t1);result += to_string(t1) + ".";unordered_map<long, long> mp;while (t2 != 0){if (mp.find(t2) != mp.end()){result.insert(mp[t2], 1, '(');result += ")";break;}long size = result.size();mp.insert(make_pair(t2, size));t2 *= 10;result += to_string(t2 / den);t2 = t2%den;}return result;}};
1 0
- 166. Fraction to Recurring Decimal
- 166. Fraction to Recurring Decimal
- 166. Fraction to Recurring Decimal
- 166. Fraction to Recurring Decimal
- 166. Fraction to Recurring Decimal
- 166. Fraction to Recurring Decimal
- 166. Fraction to Recurring Decimal
- 166. Fraction to Recurring Decimal
- 166. Fraction to Recurring Decimal
- 166. Fraction to Recurring Decimal
- 166. Fraction to Recurring Decimal
- 166. Fraction to Recurring Decimal
- 166. Fraction to Recurring Decimal
- 166. Fraction to Recurring Decimal
- 166. Fraction to Recurring Decimal
- 166. Fraction to Recurring Decimal
- 166. Fraction to Recurring Decimal
- 166. Fraction to Recurring Decimal
- [Android]如何修改android模拟器的IMEI号
- android:windowSoftInputMode属性使用
- Android App实现第三方微信登录
- Android 实现“调用手机已安装市场,进行软件评分的功能”
- android:layout_gravity和android:gravity的区别
- 166. Fraction to Recurring Decimal
- 从我自己的角度总结一下移动互联网的技术
- IOS 开发 Pods目录 中头文件编程链接的问题解决
- 【POJ1699】-Best Sequence 搜索剪枝
- Android系统架构
- Android动画效果translate、scale、alpha、rotate详解
- Openfire 的安装和配置
- Android5.0报错:java.lang.IllegalArgumentException: Service Intent must be explicit
- Android app1打开app2的实现