zoukankan      html  css  js  c++  java
  • leecode 166. 分数到小数

    给定两个整数,分别表示分数的分子 numerator 和分母 denominator,以 字符串形式返回小数 。

    如果小数部分为循环小数,则将循环的部分括在括号内。

    如果存在多个答案,只需返回 任意一个 。

    对于所有给定的输入,保证 答案字符串的长度小于 104 。

    示例 1:

    输入:numerator = 1, denominator = 2
    输出:"0.5"

    示例 2:

    输入:numerator = 2, denominator = 1
    输出:"2"

    示例 3:

    输入:numerator = 2, denominator = 3
    输出:"0.(6)"

    示例 4:

    输入:numerator = 4, denominator = 333
    输出:"0.(012)"

     

    public String fractionToDecimal(int numerator, int denominator) {
        if (numerator == 0) {
            return "0";
        }
        StringBuilder fraction = new StringBuilder();
        // If either one is negative (not both)
        if (numerator < 0 ^ denominator < 0) {
            fraction.append("-");
        }
        // Convert to Long or else abs(-2147483648) overflows
        long dividend = Math.abs(Long.valueOf(numerator));
        long divisor = Math.abs(Long.valueOf(denominator));
        fraction.append(String.valueOf(dividend / divisor));
        long remainder = dividend % divisor;
        if (remainder == 0) {
            return fraction.toString();
        }
        fraction.append(".");
        Map<Long, Integer> map = new HashMap<>();
        while (remainder != 0) {
            if (map.containsKey(remainder)) {
                fraction.insert(map.get(remainder), "(");
                fraction.append(")");
                break;
            }
            map.put(remainder, fraction.length());
            remainder *= 10;
            fraction.append(String.valueOf(remainder / divisor));
            remainder %= divisor;
        }
        return fraction.toString();
    }
  • 相关阅读:
    CS027th: 6papers
    MATH026th: 《矩斋筹算丛刻》
    MATH026th: 《古今算学丛书》目录
    Compiler25th005: Excel Compiler
    AIIE25th004: 2020aiie在合肥举办
    AIIE21th003: 2021年第二届国际工业工程和人工智能大会(IEAI 2021)
    ComPiler200004:Library-Oriented Programming
    ComPiler200003:Story-Oriented Programming
    ComPiler200002:Growing a Compiler
    conda
  • 原文地址:https://www.cnblogs.com/kpwong/p/14653325.html
Copyright © 2011-2022 走看看