Fraction to Recurring Decimal 分数转为小数
2015-05-28 22:18
363 查看
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)".
Credits:
Special thanks to @Shangrila for adding this problem and creating all test cases.
class Solution { public: //sprintf(temp, "%d", ss)用一个Map记录每一个余数,当出现重复的余数时,那么将会进入循环,两个重复余数之间的部分就是循环体 string fractionToDecimal(int numerator, int denominator) { string ans; if(numerator==0) return "0"; if(denominator==0) return ""; if((numerator<0)^(denominator<0)) { ans+="-"; } long long a=numerator,b=denominator; if(a<0) a=-a; if(b<0) b=-b; long long res=a/b; char str[20]; sprintf(str, "%lld", res); ans+=str; long long rem=(a%b)*10; if(rem==0) return ans; map<long long ,int>mm; ans+="."; while(rem!=0) { if(mm.count(rem)!=0) { int beg=mm[rem]; string p1=ans.substr(0,beg); string p2=ans.substr(beg,ans.length()); ans=p1+"("+p2+")"; return ans; } mm[rem]=ans.length(); res=rem/b; char str[20]; sprintf(str, "%lld", res); ans+=str; rem=(rem%b)*10; } return ans; } };
相关文章推荐
- 《构建之法》第8,9,10章
- 公司的首页
- 互联网+
- 解决 SharePoint 2010 拒绝访问爬网内容源错误的小技巧(禁用环回请求的两种方式)
- Linux 进程--父进程查询子进程的退出状态
- 终于大致tableview知道如何刷新了
- Perl 上下文及其对操作的影响
- 课堂练习之求最划算的买法的价格
- 走入PHP-数据类型和字符串语法
- 《你的灯还亮着吗?》读后感(一)
- PB excel 设定某些单元格框格为实线,但发现range()中值获取不到
- 黑马程序员——多线程(一)
- iOSUI学习之--------将程序json字符串上传至服务器
- 容器+AOP 实现动态部署(一)
- 《编程珠玑》第一部分总结
- Majority Element
- DDDW重复行只能选择第一个的问题
- Caused by: Action class [com.struts.action.LoginAction] not found 解决方法
- 【一些事晚报】携程网今日瘫痪
- palindrome partition II