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

将真分数分解为埃及分数

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

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void (async function () {
    // Write your code here
    while ((line = await readline())) {
        let tokens = line.split("/");
        let top = parseInt(tokens[0]); // 分子
        let bot = parseInt(tokens[1]); // 分母
        var arr = [];
        var res = "";
        while ((a = Math.ceil(bot / top))) {
            // 把分子分母倒过来相除,再向上取整,得到的整数就是其中一个分母
            // 把剩余的值表示为新的分数,再对剩余的值进行同样操作
            arr.push(a);
            top = top * a - bot;
            bot = bot * a;
            // 直到剩余的值的分子为0,结束循环
            if (top == 0) break;
        }
        arr.forEach((item, index) => {
            if (index == 0) {
                res += `1/${item}`;
            } else {
                res += `+1/${item}`;
            }
        });

        console.log(res);
    }
})();

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务