zoukankan      html  css  js  c++  java
  • 166. 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     public String fractionToDecimal(int numerator, int denominator) {
     2         if (denominator ==0) return "";
     3         StringBuilder result = new StringBuilder();
     4         String sign = (numerator < 0 == denominator < 0 || numerator == 0) ? "" : "-";
     5         long num = Math.abs((long) numerator);
     6         long den = Math.abs((long) denominator);
     7         result.append(sign);
     8         result.append(num / den);
     9         long remainder = num % den;
    10         if (remainder == 0)
    11             return result.toString();
    12         result.append(".");
    13         HashMap<Long, Integer> hashMap = new HashMap<Long, Integer>();
    14         while (!hashMap.containsKey(remainder)) {
    15             hashMap.put(remainder, result.length());
    16             result.append(10 * remainder / den);
    17             remainder = 10 * remainder % den;
    18         }
    19         int index = hashMap.get(remainder);
    20         result.insert(index, "(");
    21         result.append(")");
    22         return result.toString().replace("(0)", "");        
    23     }
  • 相关阅读:
    梦断代码阅读笔记03
    用户场景分析
    学习进度8
    学习进度7
    梦断代码阅读笔记02
    学习进度6
    随堂小测app(nabcd)
    梦断代码阅读笔记01
    《构建之法》-6
    《构建之法》-5
  • 原文地址:https://www.cnblogs.com/wzj4858/p/7723041.html
Copyright © 2011-2022 走看看