• Leetcode 166.分数到小数


    分数到小数

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

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

    示例 1:

    输入: numerator = 1, denominator = 2

    输出: "0.5"

    示例 2:

    输入: numerator = 2, denominator = 1

    输出: "2"

    示例 3:

    输入: numerator = 2, denominator = 3

    输出: "0.(6)"

     1 import java.util.ArrayList;
     2 import java.util.HashMap;
     3 import java.util.List;
     4 
     5 public class Solution {
     6     public static String fractionToDecimal(int numerator, int denominator) {
     7         HashMap<Long,Integer> maps = new HashMap<>();//store divid number
     8         List<Long> number = new ArrayList<>();
     9         int index = 0; int beginIndex = -1;
    10         StringBuilder builder = new StringBuilder();
    11         if(denominator==0) return "";
    12         long num = numerator;
    13         long denum = denominator;
    14         if((num<0 && denum>0) || (num>0 && denum<0))
    15             builder.append('-');
    16         num = Math.abs(num);
    17         denum = Math.abs(denum);
    18         long val = num/denum;
    19         builder.append(String.valueOf(val));
    20         num = (num%denum)*10;
    21         while(num!=0){
    22             if(maps.containsKey(num)){//开始重复
    23                 beginIndex = maps.get(num);
    24                 break;
    25             }else{
    26                 maps.put(num, index++);
    27                 val = num/denum;
    28                 num = (num%denum)*10;
    29                 number.add(val);
    30             }
    31         }
    32         for(int i = 0;i<index;i++){
    33             if(i==0)
    34                 builder.append('.');
    35             if(i==beginIndex){
    36                 builder.append('(');
    37             }
    38             builder.append(number.get(i));
    39         }
    40         if(beginIndex!=-1)
    41             builder.append(')');
    42         return builder.toString();
    43     }
    44 }
  • 相关阅读:
    pandas
    CTC Loss原理
    CTC 的工作原理
    Demystifying JavaScript Closures, Callbacks and IIFEs
    Css compatibility
    Flexbox——快速布局神器
    centos wordpress
    Encog
    D3js
    Lucene学习
  • 原文地址:https://www.cnblogs.com/kexinxin/p/10202981.html
Copyright © 2020-2023  润新知