zoukankan      html  css  js  c++  java
  • leetcode[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)".

    class Solution {
    public:
    string  to_str(long long  n)
    {
        string str="";
        if(n==0)
        {
            str+='0';
            return str;
        }
        long long tmp=n;
        long long power=1;
        int icount=0;
        while (tmp)
        {
            tmp/=10;
            power*=10;
            icount++;
        }
        power/=10;
        tmp=n;
        for (int i=0;i<icount;i++)
        {
            long long d=tmp/power;
            str+=char('0'+d);
            tmp-=d*power;
            power/=10;
        }
        return str;
    }
    string fractionToDecimal(int numerator, int denominator) {
        if(denominator==0)return "";
        if(numerator==0)return "0";
        string res="";
        long long num=numerator,  den=denominator;
        if((num>0&&den<0)||(num<0&&den>0))
            res+="-";
        num=num>=0?num:-num,den=den>=0?den:-den;
        long long part=num/den;
        res+=to_str(part);
        long long f=num%den;
        if(f==0)return res;
        res+='.';
        map<int,int> fmap;
        while(f)
        {
            if (fmap.count(f))
            {
                int beg=fmap[f];
                string part1=res.substr(0,beg);
                string part2=res.substr(beg,res.length());
                res=part1+"("+part2+")";
                return res;
            } 
            else
            {
                fmap[f]=res.length();            
                f*=10;
                res+=to_str(f/den);
                f%=den;        
            }
        }
        return res;
    }
    };
  • 相关阅读:
    生产者和消费者,锁,队列
    爬虫日记-xpath来临
    进程进阶
    Entity Framework 复杂类型(转)
    EF Code First 学习笔记:约定配置(转)
    EF Code First学习笔记 初识Code First(转)
    JSON草稿
    JSON实例(单对象)
    JSON语法2
    JSON 语法
  • 原文地址:https://www.cnblogs.com/Vae1990Silence/p/4280677.html
Copyright © 2011-2022 走看看