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

将真分数分解为埃及分数

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

这是我在简书上写的题解 https://www.jianshu.com/p/a8f157e4879a 详细解释了斐波那契算法 牛客的题解编辑器太不友好了
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNextLine()) {
            System.out.println(fib(in.nextLine()));
        }         
    }

    static String fib(String expression) {
        String[] ops = expression.split("/");
        long a = Long.parseLong(ops[0]);
        long b = Long.parseLong(ops[1]);
        StringBuilder sb = new StringBuilder();
        while (true) {
            long q = b / a;
            long r = b % a;
            if (a == 1) {
                return sb.append("1/").append(b).toString();
            } else if (r == 0){
                return sb.append("1/").append(q).toString();
            } else {
                sb.append("1/").append(q + 1).append("+").toString();
            }
            a -= r;
            b *= q + 1;
        }
    }
}





#华为笔试#
全部评论

相关推荐

就用这个吧:支持多益再加一个空气使用费
点赞 评论 收藏
分享
02-05 08:49
已编辑
武汉大学 Web前端
野猪不是猪🐗:36k和36k之间亦有差距,ms的36k和pdd的36k不是一个概念
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务