javascript核心技术(四十五)深入学习函数(一) 递归函数

[复制链接] [提交至百度]
查看: 616|回复: 4

857

主题

1451

帖子

6904

积分

管理员

人亦已歌

Rank: 12Rank: 12Rank: 12

积分
6904

活跃会员热心会员推广达人宣传达人突出贡献优秀版主荣誉管理论坛元老

发表于 2023-1-28 15:50:21 | 显示全部楼层 |阅读模式
何为递归:
函数自己调用自己。


应用场景:
当函数的运行结果依赖该函数的上一次运行结果时就需要递归。


注意事项:
1、递归必须要有出口,否则是死循环。
2、如果递归层级太深对资源的消耗很大。

案例:
请看如下数字,寻找规律并填写括号中应该是什么?
0 1 3 6 10 15 21 28 36 () 55

以上数字的规律为:
除了第一个0以外,后面的数字等于前面的数字+该数字所在位置,所以括号中的数字应该是45。
1 3 6 10 15 21 28 36
1=0+1
3=1+2
6=3+3
10=6+4
...
45=36+9
所以可以用以下函数来表达
  1. f(n) = f(n-1) + n;
复制代码
f(n) 即:给函数传入一个数字,这个数字是1、2、3、4.......,求出对应位置上的那个数字是什么
f(n-1) + n 即:传入参数所代表的位置前面的数字+传入的数字

即:下一次的计算结果依赖上一次的计算结果,所以需要递归。

代码如下:
<!DOCTYPE html>
<html>
<head>
        <title>深入学习函数(一) 递归函数</title>
        <script src="./jquery.js"></script>
</head>
<body>
        <script type="text/javascript">
        function f1(n){
                if(n == 0){
                        return 0;
                }else{
                        return n + f1(n-1);
                }
        }
        console.log( f1(0) );
        console.log( f1(1) );
        console.log( f1(2) );
        console.log( f1(3) );
        console.log( f1(4) );
        console.log( f1(5) );
        console.log( f1(6) );
        console.log( f1(7) );
        console.log( f1(8) );
        console.log( f1(9) );
        console.log( f1(100) );
        </script>
</body>
</html>


javascript核心技术(四十五)深入学习函数(一) 递归函数

应用递归的场景往往会涉及一些算法,这部分内容比较深奥,大家尽力理解,对于入门来说,不理解也可以。


0

主题

9

帖子

5

积分

营销入门

Rank: 2

积分
5
发表于 2023-2-21 05:52:21 | 显示全部楼层
太好了.

0

主题

9

帖子

5

积分

营销入门

Rank: 2

积分
5
发表于 2023-3-6 14:33:07 | 显示全部楼层
我看了你写的这些真的对我影响很大,虽然我还是一个学生,还没有进入社会,但要相信天外有天,人外有人,永远不要认为自己已经学好了

0

主题

3

帖子

2

积分

营销入门

Rank: 2

积分
2
发表于 2023-3-17 18:25:40 | 显示全部楼层
有同感

0

主题

12

帖子

7

积分

营销入门

Rank: 2

积分
7
发表于 3 天前 | 显示全部楼层
好意!  肯请楼主带主角去测测智商,  情商为0就不用了!
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1、请认真发帖,禁止回复纯表情,纯数字等无意义的内容!帖子内容不要太简单!
2、提倡文明上网,净化网络环境!抵制低俗不良违法有害信息。
3、如果你对主帖作者的帖子不屑一顾的话,请勿回帖。谢谢合作!
3、问答求助区发帖求助后,如有其他用户热心帮您解决问题后,请自觉点击设为最佳答案按钮。

精彩图文
 
 
在线客服
技术支持
工作时间:
8:00-18:00
软著登字:
1361266号
官方微信扫一扫

QQ|小黑屋|慈众营销 ( 粤ICP备15049986号 )|网站地图

自动发帖软件 | 自动发帖器 | 营销推广软件 | 网络营销工具 | 网络营销软件 | 网站推广工具 | 网络推广软件 | 网络推广工具 | 网页推广软件 | 信息发布软件 | 网站推广工具 | 网页推广软件

Powered by Discuz! X3.4   © 2012-2020 Comsenz Inc.  慈众科技 - Collect from 深圳吉宝泰佛文化有限公司 公司地址:罗湖区黄贝街道深南东路集浩大厦A1403

返回顶部 返回列表