// 一个项目,最多用个1两次
// 函数中,调用它自己,这样的函数就是递归函数
// ---------------------------------------------------
// let i = 1
// function fn() {
// // 加一个临界条件,说明一下,什么时候退出这个函数(出口)
// if (i > 10) return
// console.log(i)
// i++
// fn()
// }
// fn()
// -----------------------------------------------------
// 计算一个数的阶乘
// 10阶乘:10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1
// 5的阶乘:5 * 4 * 3 * 2 * 1
// 48 ???
// 规律: n的阶乘 = n * (n-1)的阶乘
// 一定要相信自己,我一定能够写一个函数
// 功能:计算一个数的阶乘
// 当我需要计算一个数的阶乘的时候,就调用这个函数即可
// function fn(n) {
// if (n === 1) return 1
// // 如果n不是1呢?
// // return n * (n-1)的阶乘
// return n * fn(n - 1)
// }
// // console.log(fn(4))
// console.log(fn(10))
// --------------------------------------------------
// 斐波那契数列
// 位置: 1 2 3 4 5 6 7 8 ...........................40
// 数字: 1 1 2 3 5 8 13 21...........................102334155
// 写一个函数,功能是:计算一个位置的数字
function fn(n) {
if (n === 1 || n === 2) return 1
// return n-1位置的数字 + n-2位置的数字
return fn(n - 1) + fn(n - 2)
}
// console.log(fn(6))
// console.log(fn(8))
console.log(fn(40))