166. Fraction to Recurring Decimal
来源:互联网 发布:uber隐瞒数据泄露事件 编辑:程序博客网 时间:2024/05/17 01:52
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.
Subscribe to see which companies asked this question
这道题答案不是我自己想的,答案写的很清楚,把每次的余数存起来之后用HashMap查找这个余数之前有没有出现过是亮点
public class Solution { public String fractionToDecimal(int numerator, int denominator) { if (numerator == 0) return "0"; if (denominator == 0) return ""; String ans = ""; //如果结果为负数 if ((numerator < 0) ^ (denominator < 0)) { ans += "-"; } //下面要把两个数都转为正数,为避免溢出,int转为long long num = numerator, den = denominator; num = Math.abs(num); den = Math.abs(den); //结果的整数部分 long res = num / den; ans += String.valueOf(res); //如果能够整除,返回结果 long rem = (num % den) * 10; if (rem == 0) return ans; //结果的小数部分 HashMap<Long, Integer> map = new HashMap<Long, Integer>(); ans += "."; while (rem != 0) { //如果前面已经出现过该余数,那么将会开始循环 if (map.containsKey(rem)) { int beg = map.get(rem); //循环体开始的位置 String part1 = ans.substring(0, beg); String part2 = ans.substring(beg, ans.length()); ans = part1 + "(" + part2 + ")"; return ans; } //继续往下除 map.put(rem, ans.length()); res = rem / den; ans += String.valueOf(res); rem = (rem % den) * 10; } return ans; } }
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
- iOS开发:正确使用const,static,extern
- vim 注释方法
- 使用JDBC中PreparedStatement时,sql语句中中文出现问号
- Android 中Base64编码解码
- 剑指offer面试题之变态跳台阶
- 166. Fraction to Recurring Decimal
- eclipse从数据库获取数据时控制台乱码问题
- EventBus3.0性能优化之添加索引(Index)
- ios 应用内支付(In-App Purchase,沙盒测试,后台验证)
- 装修之mybatis环境搭建
- 简单排序算法(一)
- Android LIstView隐藏滚动条
- canvas中2D画线详解
- 初识Java设计模式之Builder