1、最简分数

1、输入整数n,输出数组(string[])中每一项都是分数,且每一项都是最简分数,不能重复;

示例: 输入n = 2; 返回 ['1/2'];

输入n = 4;返回 ['1/2', '1/3', '2/3', '1/4', '3/4'];

输入n = 6; 返回 ['1/2', '1/3', '2/3', '1/4', '3/4', '1/5', '2/5', '3/5', '4/5', '1/6', '5/6'];

      //计算最大公约数 
        function gcd(a,b){
            var result = 1;
            for(var i = 1; i <= a && i <= b; i++ ){
                if(a%i == 0 && b%i == 0 ){
                    result = i;
                }
            }
            return result;
        }

        function gcd1(a,b){
            if(b == 0){
                return a;
            }
            var r = a % b;
            console.log(r);
            return gcd(b,r);
        }
        function gcd2(a,b){
            var temp;
            while(b != 0){
                temp = a % b;
                a = b;
                b = temp;
            }
            return a;
        }
        // 最小公倍数
        function scm(a,b){
            return (a*b)/gcd(a,b);
        }
        
       /**
       * @param {number} n
       * @return {string[]}
       */
        function Fraction(n){
            let arr = [];
            for(let i= 2; i <= n; i++){
                for(let k = 1; k < i; k++){
                    if(gcd(k,i)== 1){
                        // 1.break:跳出当前循环体,也称结束当前循环体
                        // 2.continue:跳出此次循环,继续执行下一次循环
                        arr.push(k+'/'+i)
                    }
                }
            }
            return arr;
        }
        console.log(Fraction(10));
 // =>['1/2', '1/3', '2/3', '1/4', '3/4', '1/5', '2/5', '3/5', '4/5', '1/6', '5/6', '1/7', '2/7', '3/7', '4/7', '5/7', '6/7', '1/8', '3/8', '5/8', '7/8', '1/9', '2/9', '4/9', '5/9', '7/9', '8/9', '1/10', '3/10','7/10', '9/10']

posted @ 2022-02-26 11:43  清风~~徐来  阅读(171)  评论(0编辑  收藏  举报