1. // 一个项目,最多用个1两次
    2. // 函数中,调用它自己,这样的函数就是递归函数
    3. // ---------------------------------------------------
    4. // let i = 1
    5. // function fn() {
    6. // // 加一个临界条件,说明一下,什么时候退出这个函数(出口)
    7. // if (i > 10) return
    8. // console.log(i)
    9. // i++
    10. // fn()
    11. // }
    12. // fn()
    13. // -----------------------------------------------------
    14. // 计算一个数的阶乘
    15. // 10阶乘:10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1
    16. // 5的阶乘:5 * 4 * 3 * 2 * 1
    17. // 48 ???
    18. // 规律: n的阶乘 = n * (n-1)的阶乘
    19. // 一定要相信自己,我一定能够写一个函数
    20. // 功能:计算一个数的阶乘
    21. // 当我需要计算一个数的阶乘的时候,就调用这个函数即可
    22. // function fn(n) {
    23. // if (n === 1) return 1
    24. // // 如果n不是1呢?
    25. // // return n * (n-1)的阶乘
    26. // return n * fn(n - 1)
    27. // }
    28. // // console.log(fn(4))
    29. // console.log(fn(10))
    30. // --------------------------------------------------
    31. // 斐波那契数列
    32. // 位置: 1 2 3 4 5 6 7 8 ...........................40
    33. // 数字: 1 1 2 3 5 8 13 21...........................102334155
    34. // 写一个函数,功能是:计算一个位置的数字
    35. function fn(n) {
    36. if (n === 1 || n === 2) return 1
    37. // return n-1位置的数字 + n-2位置的数字
    38. return fn(n - 1) + fn(n - 2)
    39. }
    40. // console.log(fn(6))
    41. // console.log(fn(8))
    42. console.log(fn(40))