• [leedcode 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)".
      public class Solution {
          public String fractionToDecimal(int numerator, int denominator) {
              //注意正负
              //注意越界(转为long)
              //使用map记录余数和位置,当发现相同的余数时,则表示此余数对应位置的商位开始循环,此时需要用()包装
              //seq表示商
              long num=Math.abs((long)numerator);
              long deno=Math.abs((long)denominator);
              int flag=1;
              if(numerator>0&&denominator<0||numerator<0&&denominator>0) flag=0;
              long s=num/deno;
              long t=num%deno;
              String res=flag==0?"-"+Long.toString(s):Long.toString(s);
              if(t==0) return res;
              else return res+"."+getRes(t,deno);
              
          }
          public StringBuilder getRes(long t,long deno){
              StringBuilder seq=new StringBuilder();
              HashMap<Long,Integer> map=new HashMap<Long,Integer>();
              int i=0;
              while(t!=0&&!map.containsKey(t)){
                  map.put(t,i);
                  i++;
                  t*=10;
                  seq.append(Long.toString(t/deno));
                  t%=deno;
                  
              }
              if(t!=0){
                  seq.insert((int)map.get(t),'(');
                  seq.append(')');
              }
              return seq;
          }
      }
  • 相关阅读:
    Innodb加载数据字典 && flush tables
    MySQL purge log简单吗
    MySQL ddl丢表
    数据库 一致性读&&当前读
    java数组
    customer.java
    java构造函数
    EXCEL 2007施工进度横道图制作步骤及实战练习
    如何利用office绘制施工进度计划横道图?
    计算器
  • 原文地址:https://www.cnblogs.com/qiaomu/p/4695915.html
Copyright © 2020-2023  润新知