栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

2021.10.3打卡

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2021.10.3打卡

166. 分数到小数 思路:模拟除法
class Solution {
public:
    string fractionToDecimal(int numerator, int denominator) {
        long numeratorLong = numerator, denominatorLong = denominator;
        if(numeratorLong % denominatorLong == 0)
            return to_string(numeratorLong/denominatorLong);
        
        string ans;
        if(numeratorLong<0 ^ denominatorLong<0){
            ans +="-";
            numeratorLong = abs(numeratorLong);
            denominatorLong = abs(denominatorLong);
        }
        
        ans += to_string(numeratorLong / denominatorLong)+ ".";
        string fractionPart;
        long remind=numeratorLong % denominatorLong;
        unordered_map mp;
        int index=0;
        while(remind != 0 && !mp.count(remind))
        {
            mp[remind] = index;
            fractionPart += to_string(remind * 10 /denominatorLong);
            remind = remind * 10 % denominatorLong;
            index++;
        }
        if(remind!=0)
            fractionPart = fractionPart.substr(0,mp[remind])+"("+fractionPart.substr(mp[remind])+")";
        
        ans += fractionPart;

        return ans;
    }
};

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/287996.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号