题解 | #将真分数分解为埃及分数#
将真分数分解为埃及分数
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);
}
})();
查看15道真题和解析