题解 | #求最小公倍数#

求最小公倍数

https://www.nowcoder.com/practice/22948c2cad484e0291350abad86136c3

/*  循环和递归两种解法:
    1、获取输入的两个数,进行排序,得到较大的一个
    2、以这个较大数开始按倍数递增,判断是否可以整除输入的两个数,若都可以整除,则这个数就是其最大公倍数
*/
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
    let arr = [];
    while ((line = await readline())) {
        arr = line.split(" ");
    }
    // // 方法1:循环求解
    // arr.forEach((item, index) => (arr[index] = +item));
    // arr.sort((a, b) => a - b);
    // let k = arr[1];
    // let i = 1;
    // // 以两数中的最大数的倍数递增判断是否可以整除
    // while (k % arr[0] || k % arr[1]) {
    //     i++;
    //     k = arr[1] * i;
    // }
    // console.log(k)


    // 方法2:递归求解
    // m 用于存储最小公倍数
    function minG(a, b, m = 0) {
        m = Math.max(a, b, m);
        if (m % a == 0 && m % b == 0) {
            return m;
        } else {
            m += Math.max(a, b);
            return minG(a, b, m);
        }
    }
    console.log(+minG(arr[0], +arr[1]));
})();

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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