字节面试题:整数除法

题目描述:输入int a,int b,计算a/b,如果是无限循环小数需要把循环的情况输出出来,类似4/3=1.3(2),(2)表示从第二位开始循环

package org.example;
import java.util.*;

public class Main {
    public static String fractionToDecimal(int a, int b) { //计算 a / b
        if (a == 0) {
            return "0";
        }
        StringBuilder result = new StringBuilder();
        // Determine the sign
        if ((a < 0) ^ (b < 0)) {
            result.append("-");
        }
        //转成long防止溢出
        long num = Math.abs((long) a);
        long den = Math.abs((long) b);
        // Append the integer part
        result.append(num / den);
        num %= den;
        if (num == 0) { //说明整除了
            return result.toString();
        }
        result.append(".");
        // 开始处理小数的部分
        Map<Long, Integer> map = new HashMap<>(); //哈希表记录每个余数出现的位置
        while (num != 0) {
            if (map.containsKey(num)) {
                int index = map.get(num);
                result.insert(index, "(");
                result.append(")");
                break;
            }
            map.put(num, result.length());
            num *= 10;
            result.append(num / den);
            num %= den;
        }
        return result.toString();
    }

    public static void main(String[] args) {
        //输入int a,int b,计算a/b,如果是无限循环小数需要把循环的情况输出出来,类似4/3=1.3(2),(2)表示从第二位开始循环
        int a = 4;
        int b = 3;
        System.out.println(fractionToDecimal(a, b)); // 输出: "1.(3)"

        a = 1;
        b = 2;
        System.out.println(fractionToDecimal(a, b)); // 输出: "0.5"

        a = 2;
        b = 3;
        System.out.println(fractionToDecimal(a, b)); // 输出: "0.(6)"

        a = 1;
        b = 6;
        System.out.println(fractionToDecimal(a, b)); // 输出: "0.1(6)"
    }
}
#牛客激励计划#
全部评论
点赞 回复 分享
发布于 02-13 18:32 山西

相关推荐

点赞 评论 收藏
分享
04-11 00:19
已编辑
门头沟学院 Java
好大哥boss上找到我,彼时刚开始投简历,且没人理。开局就是阿里云,有点战战兢兢,好大哥安慰我不要怕,并且指点了学习方向本着谁对我最好我就投谁的原则,在几个内推中选了好大哥的部门一面很常规,项目+八股,看看广度,聊完正事面试官主动说是同校学长,还闲聊了几句,想必是面评拉满二面是leader,偏压力面,没有项目没有常规八股,面完感觉非常差,有几个完全不会,有几个是瞎说,leader也任由我乱说,后来居然通过了,简直匪夷所思。跟hr交流得出结论可能是技术探底,测测深度,我感觉也可能是学长的面评救了一命笔试更是重量级,要死要活只A出来一题,问了好大哥,大哥说没事。但是看着投其他部门的,学历比我都高,a的比我多,直接被挂,心态更是雪上加霜二面+笔试直接把没经历几次面试的我击溃了,刚得知二面通过,笔试又生死未卜,只能硬着头皮继续,复盘后对着不会的地方猛学,三面刚好又问到一些三面是boss,问了一些八股,也问了一些设计题场景题,没有项目,全程很轻松的沟通HRG面,常规hr问题,小姐姐很温柔很nice,问了半个小时,然后聊了一会天整个过程感觉全是狗运,一个热情内推我的好大哥,一个校友已经打下口碑的部门,一个学长面试官,一个技术探底但仁慈的leader,一个平易近人的boss,一个nice的HR,一个菜但走运的我一开始抱着高不可攀刷经验的想法来的,越面越感觉有希望,压力也越大,近期的学习几乎都是为了准备阿里云,但是也不知不觉学的越来越深入,不管排不排的上hc,也都是收获颇丰了--------------------------------------4.10,已oc
阿里云HR面155人在聊 查看7道真题和解析
点赞 评论 收藏
分享
评论
4
13
分享

创作者周榜

更多
牛客网
牛客企业服务