leetcode-java-166. Fraction to Recurring Decimal
来源:互联网 发布:数据与信息的关系 编辑:程序博客网 时间:2024/06/11 01:10
思路:
如何循环求数:每次都作除,然后取整数部分,余数*10
如何判断重复:当余数重复时,则就会是重复部分的出现,所以用hashmap存储余数(key)和索引位置,当余数(key)重复,则结束循环得到索引值方便加()
如何处理正负数:先判断符号,转换成正数
如何溢出处理:如果输入为Integer.MIN_VALUE,取绝对值后会溢出,则先转换成long
public class Solution { public String fractionToDecimal(int numerator, int denominator) { long quo = 0, res = 0; String result = ""; // 特殊情况的处理 if(numerator == 0) { return "0"; } if(denominator == 0) { return ""; } //若结果为负 if((numerator > 0 && denominator < 0)||(numerator < 0 && denominator > 0)) { result += "-"; } // 溢出处理并取正 long num = numerator, deno = denominator; num = Math.abs(num); deno = Math.abs(deno); // 整数部分的处理 quo = num / deno; res = (num % deno)*10; result += Long.toString(quo); if(res == 0) { return result; } // 小数部分的处理 Map<Long,Integer> map = new HashMap<Long,Integer>(); int index = 0; result += "."; while(res != 0) { if(map.containsKey(res)) { index = map.get(res); result = result.substring(0,index) + "(" + result.substring(index,result.length()) + ")"; return result; } map.put(res,result.length()); quo = res / deno; result += Long.toString(quo); res = (res % deno)*10; } return result; } }
0 0
- leetcode-java-166. Fraction to Recurring Decimal
- 【leetcode】Fraction to Recurring Decimal Java
- 166. Fraction to Recurring Decimal Leetcode Python
- Leetcode-166.Fraction to Recurring Decimal
- [Leetcode]166. Fraction to Recurring Decimal @python
- [leetcode] 166. Fraction to Recurring Decimal
- leetcode 166. Fraction to Recurring Decimal
- [LeetCode]166. Fraction to Recurring Decimal
- LeetCode *** 166. Fraction to Recurring Decimal
- LeetCode 166. Fraction to Recurring Decimal
- [LeetCode]problem 166. Fraction to Recurring Decimal
- LeetCode 166. Fraction to Recurring Decimal
- [LeetCode] 166. Fraction to Recurring Decimal
- Leetcode-166. Fraction to Recurring Decimal
- leetcode 166. Fraction to Recurring Decimal
- Leetcode 166. Fraction to Recurring Decimal
- LeetCode 166. Fraction to Recurring Decimal
- Leetcode 166. Fraction to Recurring Decimal
- iOS9.2.1降级工具和降级过程
- NodeJS 创建TCP服务器 客户端
- APM2.8 Rover 自动巡航车设计(固件安装和设置)
- TensorFlow Basic
- python 简单的发送email方法
- leetcode-java-166. Fraction to Recurring Decimal
- 简单的点赞效果
- APM2.8 Rover 自动巡航车设计(自动巡航地面站设置)
- 工作中的积极响应态度
- Jersey构建Java RestFul Webservice基础学习教程
- 读取Android GPS NMEA数据
- 图像旋转在opencL 实现方法
- APM2.8 Rover 自动巡航车设计(超声波和红外测距仪的安装和设置)
- java语言的猜数字游戏代码