js实现阶乘以及斐波那契数列

345 阅读1分钟

阶乘

1.使用 for 循环方式实现

function factorial(n) {
    let i = 1;
    let sum = 1;
    for (; i <= n; i++) {
        sum = sum * i;
    }
    return sum;
}

2. 不使用 for 循环方式实现

    function factorial(n) {
        let num = 1;
        let i = 1;
        function factorial1() {
            if (i < n) {
                i++;
                num = num * i;
                factorial1();
            }
        }
        factorial1();
        return num;
    }

斐波那契数列

1.使用 for 循环方式实现

function fibonacci(n) {
    if (n === 1 || n === 2) {
        return 1;
    }
    let n1 =1; // 第一位
    let n2 =1; // 第二位
    let fib;
    for (let i = 3; i <= n; i++) {
        fib = n1+n2;
        n1=n2;
        n2= fib;
    }
    return fib;
}

2.不使用 for 循环实现

function fibonacci(n) {
    if(n === 1 || n === 2) {
        return 1;
    }
    let i = 3;
    let n1 =1; // 第一位
    let n2 =1; // 第二位
    let fib;
    function fibonacci1() {
        if(i <= n) {
            i++;
            fib = n1 + n2;
            n1 = n2;
            n2 = fib;
            fibonacci1();
        }
    }
    fibonacci1();
    return fib;   
}