js递归经典案例

                                   js递归经典案例  
   

   首先,我们需要了解什么是递归,递归又具有什么样的特性等等的问题,这些都是我们需要考虑的问题。
   递归的问题考虑方法如下:
      1.一个是满足结束条件的时候结束函数。
      2.一个是不满足结束条件的时候要执行的代码。
      3. 首先去找临界值,即无需计算,获得的值。
      4. 找这一次和上一次的关系
      5. 假设当前函数已经可以使用,调用自身计算上一次

案例1:计算1~n的和?
案例分析:首先我们需要找到就拿1-100的案例的问题来解释,需求sum(100)就需要求出sum(99)加上100即可,以此类推,大约有一种高中数学归纳法,和数列的一些思想,sum(99)=sum(98)+99;以此类推就能得到规律sum(n) = sum(n - 1) + n;
在这里插入图片描述

案例分析:首先我们需要找到就拿1-100的案例的问题来解释,需求sum(100)就需要求出sum(99)加上100即可,以此类推,大约有一种高中数学归纳法,和数列的一些思想,sum(99)=sum(98)+99;以此类推就能得到规律sum(n) = sum(n - 1) + n;

案例2:猴子吃桃问题:
有一堆桃子不知数目,猴子第一天吃掉一半,觉得不过瘾,又多吃了一只,第二天照此办法, 吃掉剩下桃子的一半另加一只,天天如此,到第num(num <= 10)天早,猴子发现只剩一只桃子了,问这堆桃子原来有多少只?(思路:n为还剩n天吃完的桃子数)
在这里插入图片描述案例解析:首先我们以还剩10天吃完桃子为例子,得出规律 :
peach(10)/2- 1=peach(9)
peach(10)=(peach(9)+1)*2
总结:peach(n)=(peach(n-1)+1)*2

案例3:求:n!
解题思路:1!=11=jice(1);
2!=jice(1)2=jice(2);
3!=jice(2)3=jice(3);

n!=1
2
3…
(n-1)*n=jice(n);

总结规律:jice(n)=jice(n-1)*n;

在这里插入图片描述

案例4:求1!+2!+3!+4!+…+100!;采用递归的方法去实现。

在这里插入图片描述
案例分析:首先进行推导:
11=1 aff(1)
1
1+12=3 aff(2)
1
1 +12+123=9 aff(3)
由此总结出规律:aff(n)=aff(n-1)+n!;
然后我们现在需要想办法求出:n!的相应的表达式
1!=1
1=jice(1);
2!=jice(1)=jice(2);
3!=jice(2)=jice(3);

n!=123…*(n-1)*n=jice(n);
进这两番的推导的结合使用 得出:aff(n)=aff(n-1)+jice(n);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值