• 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)".

    这题很麻烦。

    1。首先要判断符号, numberator 和 denominator 都是可正可负的。

    2。numberator 要用long 否则会溢出。

    3。每一次只能被减数*10,而且当没有出现小数点前,不会出现括号。所以先把整数部分和小数点全部输出,

     1 public class Solution {
     2     public String fractionToDecimal(int numerator, int denominator) {
     3         if(numerator == 0) return new String("0");
     4         StringBuilder sb = new StringBuilder();
     5         boolean o = (numerator < 0) ^ (denominator < 0);
     6         if(o) sb.append("-");
     7         long a = Math.abs((long)numerator);
     8         long b = Math.abs((long)denominator);
     9         sb.append(String.valueOf(a / b));
    10         a = a % b;
    11         if(a == 0) return sb.toString();
    12         sb.append(".");
    13         HashMap<Long, Integer> map = new HashMap<Long, Integer>();
    14         for(int pos = sb.length(); a != 0; pos ++){
    15             a *= 10;
    16             if(map.containsKey(a)){
    17                 sb.insert(map.get(a), "(");
    18                 sb.append(")");
    19                 break;
    20             }
    21             sb.append((int)(a / b));
    22             map.put(a, pos);
    23             a = a % b;
    24         }
    25         return sb.toString();
    26     }
    27 }
  • 相关阅读:
    OC中的字典
    OC中的那些String
    虚拟机资源共享
    虚拟机空间使用心得
    PEST和SWOT分析法
    Axure 的四种预览模式
    竞品分析:抖音VS快手
    第二章:行业与市场分析六步法
    第一章:互联网产品从0到1全流程解密(9-11)
    第一章:互联网产品从0到1全流程解密(5-8)
  • 原文地址:https://www.cnblogs.com/reynold-lei/p/4226748.html
Copyright © 2020-2023  润新知