java script 中阶乘练习

1.阶乘公式:n!=n×(n-1)×(n-2)×...×1

2.实例(使用函数方法)

(1)求n的阶乘

方法一  用for循环计算n!

 function getSum(n) {
            let s = 1;

            for (let j = 1; j <= n; j++) {
                s = s * j;
            }
            return s
        }

        // n是形参,k是实参,在函数调用时实参传递给形参
        let k = 8;
        let m = getSum(k);
        console.log(m);

方法二   用递归函数计算n! 

 // 用递归函数计算n!
        function sum(n) {
            // 1.明确递归结束的条件
            if (n == 1) {
                // return回溯
                return 1

            } else {
                // 2.继续分解n
                return n * sum(n - 1)
                // 函数自己调用自己:在调用过程中分解问题
            }
        }
        // 括号里为n的值
        let n = sum(5);
        console.log(`5!=${n}`);

递归补充注意事项:

1、递归调用:函数自己调用自己(即在函数的函数体语句中调用自己)

2、递归算法:

(1)用递归方式解决问题的前提

a、问题可以进行分解,分解得到的新问题的解法与原问题的解法相同

8! --> 8* 7! --->7 6!-->.......2!-->2 * 1!

b、问题的分解过程必须有明确的结束条件

(2)递归的过程

a、自上而下分解问题:得到最简单的问题的解

b、自下而上回溯得到原问题的解

(2)求1到n的阶乘和

function getSum(n) {
            var sum = 0;
            for (let i = 1; i <= n; i++) {
                let s = 1
                for (let j = 1; j <= i; j++) {
                    s = s * j;
                }
                sum = sum + s
            }
            return sum
        }
        let k = 10
        let result = getSum(k)
        console.log(result);

其中k的值就可以给为想要的阶乘数的值

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值