题解 | #将真分数分解为埃及分数#
将真分数分解为埃及分数
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); } })();