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

设某个真分数的分子为a,分母为b;
把c=(b/a+1)作为分解式中第一个埃及分数的分母;
将a-b%a作为新的a;
将b*c作为新的b;
如果a等于1,则最后一个埃及分数为1/b,算法结束;
如果a大于1但是a能整除b,则最后一个埃及分数为1/(b/a),算法结束;
否则重复上面的步骤。
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNext()) {
            String[] nums = in.next().split("/");
            long a = Integer.parseInt(nums[0]);
            long b = Integer.parseInt(nums[1]);
            StringBuilder res = new StringBuilder();
            while (a != 0) {
                long c = b / a + 1;
                res.append("1/").append(c);
                a = a - b % a;
                b = b * c;
                res.append("+");
                if (a == 1) {
                    res.append("1/").append(b);
                    break;
                } else if (a > 1 && b % a == 0) {
                    res.append("1/").append(b / a);
                    break;
                }
            }
            System.out.println(res);
        }
    }
}


全部评论

相关推荐

Rena1ssanc...:对的,要是面评没太烂,勤更新简历等捞就行了,腾讯可以无限复活
点赞 评论 收藏
分享
07-04 16:00
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务