递归的理解(js举例)
```js //平常说的递归分两种,一种是递归过程,一种是递归结构。 //递归过程就是函数内部调用了本身。 //在递归的过程中往往要通过分解法来减小最初计算的规模。比如一个求和S=1+2+3+^^^n。 //因为S(n)=S(n-1)+n=S(n-2)+n-1+n=^^^^^^^^^ //所以求和函数可以写成: function S(n){ if(n==1){return 1}; return S(n-1)+n; } //递归函数内部往往要设置一个变量用来判断何时退出函数的调用,像这里的n==1,否则就会陷入死循环。 //在写递归函数的时候你只要记住你定义了一个函数S