递归 是什么,怎么写,练习题

递归

技术小白,从最基础的开始分享,适用初学者,如有误点还望指正。

本篇内容递归(有搬运内容)
百度
什么是递归,递归就是函数调用函数自身
递归一般有参数
一般情况下有return

小白如我学渣如我达不到理解递归的程度,就是能写,想写的话有一个框框
这个框框我们姑且称他为最强王者法则!!!

最强王者法则:
		1先找临界值,即无需计算,获得的值。
		2.找这一次和上一次的关系。
		3假设当前函数已可用,调用自身算上一次和这一次的关系。

例:计算1加到n的值

function sum(n){
	if(n == 1){
		return 1;
		}
	return sum(n - 1) + n;
}
alert(sum(100));

最后的输出结果是5050,遍历成功;
可以看出来,思路就是最后他肯定会加回到1,于是if,实参帮助确定这个不确定的值,确定执行次数,最后加出来。

但!

这个东西在计算机内存里是这么跑的
在这里插入图片描述
它会一级一级往下走,直到走到最后一个再全部释放出结果,
so
如果这个栗子是像我这样算到一百那还好,但如果这个数无穷大,电脑本身实力又不过硬的话…
在这里插入图片描述

练习题

任意数相加

		function add(){
			var sum = 0;
			for(var i = 0; i < arguments.length; i++){
				sum += arguments[i];
			}
			return sum;
		}
		alert(add(10, 20, 30));

输出不确定数量的helloworld

		function print(n){
			if(n == 0){
				return;
			}
			document.write("hello_world<br/>");
			return print(n - 1);
		}
		print(5);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值