主题列表:juejin, github, smartblue, cyanosis, channing-cyan, fancy, hydrogen, condensed-night-purple, greenwillow, v-green, vue-pro
贡献主题:https://github.com/xitu/juejin-markdown-themes
theme: channing-cyan
highlight: monokai-sublime
一、阶乘
```javascript
```
二、递归
JS函数可以相互调用,嵌套调用
JS函数也能调用自己,调用自己的函数叫做递归函数,递归函数就是特殊的嵌套调用函数。
递归就是函数自己调用自己,函数的递归调用是特殊的嵌套调用。
注:在递归内部,必须要有一个分支是不调用自己的。 ```javascript
```
案例:
1、使用递归做一个阶乘(求n的阶乘): ```javascript
1)递归的写法 注:递归的效率低,他一直在调用自己,不好跟踪。 javascript <script type="text/javascript"> /* 斐波那契数列:前两个数是1,从第三个数开始,每个数是前两个数之和 1 1 2 3 5 8 13 21 ... */ //求第n个斐波那契数列 的数字 function fun(n){ if(n <= 2){ return 1; } //前两个相加 就是第三个 return fun(n-1)+fun(n-2); } console.log(fun(4)); </script>
2)使用循环 javascript <script type="text/javascript"> /* 斐波那契数列:前两个数是1,从第三个数开始,每个数是前两个数之和 1 1 2 3 5 8 13 21 ... */ //求第n个斐波那契数列 的数字 function fun(n){ if(n <= 2){ return 1 } let num1 = 1; let num2 = 1; let num3; for (let i = 3;i <= n;i++){ num3 = num1 + num2; //在下面 给赋值,让每次都是 num1 + num2 num1 = num2; num2 = num3; } return num3 } console.log(fun(4)); </script>
三、冒泡
```javascript
```