166. Fraction to Recurring Decimal
来源:互联网 发布:淘宝营销活动图片 编辑:程序博客网 时间:2024/05/17 19:19
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)".
思路:具体可参考http://blog.csdn.net/ljiabin/article/details/42025037
犯了一个错误,就是在abs的同时转long会溢出,因为如果abs里的数字是-INT_MIN的话直接abs会溢出,所以要先转成long,再abs。
class Solution {public: string fractionToDecimal(int numerator, int denominator) { if(numerator == 0) return "0"; if(denominator == 0) return ""; string res; if(numerator <0 && denominator> 0) res ='-'; if(denominator<0 && numerator > 0) res = '-'; long num = numerator; //这里不能直接long num = abs(numerator),如果numerator=-INT_MIN,abs后就已经溢出了 long deno = denominator; num = abs(num); deno = abs(deno); long ret = num/deno; res += to_string(ret); long long rem = (num%deno) * 10; if(rem == 0) return res; unordered_map<int, int> pos; res +='.'; while(rem!=0) { if(pos.find(rem) != pos.end()) { res.insert(pos[rem],1,'('); res+=')'; break; } pos[rem] = res.size(); ret = rem/deno; res +=to_string(ret); rem = (rem%deno) * 10; } return res; }};
0 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
- 移动 Ubuntu16.04 桌面左侧的启动器到屏幕底部
- Neo4j:Index索引
- Android 开源项目集合-不定期更新
- Linux内核学习笔记十——虚拟文件系统概念
- java规范(一)------方法设计---返回多参数的方法怎么封装
- 166. Fraction to Recurring Decimal
- centos之lnmp
- 指针和字符串常量
- 378. [LeetCode]Kth Smallest Element in a Sorted Matrix
- c++怎么求一个带空格字符串长度
- 机器学习的前世今生:一段波澜壮阔的历史
- mysql 主从复制配置
- 最大间隙问题。给定 n 个实数,求这n个实数在数轴上相邻2个数之间的最大差值,设计解最大间隙问题的线性时间算法。
- 【BZOJ3289】Mato的文件管理,莫队+树状数组