题解 | #将真分数分解为埃及分数#

将真分数分解为埃及分数

https://www.nowcoder.com/practice/e0480b2c6aa24bfba0935ffcca3ccb7b

主要在于:

1.理清求解埃及分数的方法;
2.在code前,还是要想清楚步骤,一边写一边想,容易写乱(当然是针对我这种小白哈哈哈)

import java.util.*;

public class Main {
    public static void main(String[] args)  {
        Scanner scan = new Scanner(System.in);
        while (scan.hasNextLine()) {
            String input = scan.nextLine();
            String[] inputs = input.split("/");
            long numerator = Long.parseLong(inputs[0]);
            long denominator = Long.parseLong(inputs[1]);
            List<Long> list = new ArrayList<>();

            //循环判断,直至分子为1
            while (numerator != 1) {
                //判断字母能否被分子整除
                if (denominator % numerator == 0) {
                    list.add(denominator / numerator);
                    break;
                } else {
                    long nextDenominator = denominator / numerator + 1;
                    list.add(nextDenominator);
                    numerator = numerator * nextDenominator - denominator;
                    denominator = denominator * nextDenominator;
                    if (numerator == 1) list.add(denominator);
                }
            }

            //输出
            for(int i=0;i<list.size();i++){
                if(i<list.size()-1){
                    System.out.print("1/"+list.get(i)+"+");
                }else{
                    System.out.print("1/"+list.get(i));
                }
            }
            System.out.println();


        }

    }


}
全部评论

相关推荐

ALEX_BLX:虽然说聊天记录不可信,不过这个趋势确实如此但我觉得也要想到一点就是卷后端的人里真正有“料”的人又有多少,我说的这个料都不是说一定要到大佬那种级别,而是就一个正常的水平。即使是现在也有很多人是跟风转码的,2-3个月速成后端技术栈的人数不胜数,但今时不同往日没可能靠速成进大厂了。这种情况就跟考研一样,你能上考场就已经打败一半的人了
点赞 评论 收藏
分享
04-09 09:47
门头沟学院 Java
Arbelite_:2-3k,这工资还不如去摇奶茶
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务