166. Fraction to Recurring Decimal
2015-06-03 20:45
651 查看
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)".
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)".
class Solution { public: string fractionToDecimal(int numerator, int denominator) { return fractionToDecimalCore(numerator,denominator); } string fractionToDecimalCore(int64_t numerator,int64_t denominator) { if(numerator == 0) return "0"; string ret; //determine the sign using xor if(numerator<0 ^ denominator<0) ret+="-"; numerator = abs(numerator); denominator = abs(denominator); //append the integral part ret+=to_string(numerator/denominator); //in case,there is no fractional part if(numerator%denominator ==0) return ret; //add the decimal point ret+="."; unordered_map<int,int> map; for(int64_t remainder = numerator%denominator;remainder;remainder%=denominator) { //we find a repeating remainder if(map.count(remainder) > 0) { ret.insert(map[remainder],1,'('); ret+=')'; break; } map[remainder] = ret.size(); remainder*=10; ret+=to_string(remainder / denominator); } return ret; } };
相关文章推荐
- OpenCL异构计算资料收集
- QT项目笔记
- xfire客户端调用webservice测试
- [BZOJ3997]TJOI2015组合数学|DP
- 调用系统相机以及 打开相册的代码
- OpenCL异构计算资料收集
- ImageViewCoverflow
- corosync/pacemaker, 实现高可用的MariaDB
- 各类移动安全竞赛题/部分writeup收集与整理
- MyBatis学习总结(五)——实现关联表查询
- Ant自动编译打包android项目
- delphi XE8 正式破解版下载、注册码
- 凯云水利水电工程造价管理系统 技术解析(九)机械单价(四)
- SSH2.0编程 ssh协议过程实现
- mysql 时间日期查询
- !HDU 2602 Bone Collector--DP--(裸01背包)
- 黑马程序员-java之网络编程
- ceph pg(placement group)状态总结
- 四句话
- 尺取法 POJ 3601 Subsequence