什么是递归(适合小白,大佬勿点)

一:什么是递归
引用:https://blog.csdn.net/qmdweb/article/details/80537602
这位作者的解释所用比喻很通俗。递归的理解就是倒着查字典。

所谓递归,简单点来说,就是一个函数直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。

我们可以把” 递归 “比喻成 “查字典 “,当你查一个词,发现这个词的解释中某个词仍然不懂,于是你开始查这第二个词。

可惜,第二个词里仍然有不懂的词,于是查第三个词,这样查下去,直到有一个词的解释是你完全能看懂的,那么递归走到了尽头,然后你开始后退,逐个明白之前查过的每一个词,最终,你明白了最开始那个词的意思。(摘自知乎的一个回答)

这段简单的代码在思考了半个小时之后于是乎得出上面的结论(适合小白)

	//求1~5的阶层之和
	//先求一个数的阶层
		function sum(n){
			if(n==0){
				return 0;
				}
			if(n==1){
				return 1;
				}
			else
				return n*sum(n-1);	//sum(1)=1
			}
			console.log(sum(5))
	//再利用sum()求阶层和
			function Add(n){
				if(n==0){
					return 0;
				}
				if(n==1){
					return 1;
				}
				else
					{
						return n*sum(n-1)+Add(n-1);
					}
			}

版权声明:本文为weixin_44229136原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。