递归?

  程序调用自身的编程技巧就称之为递归(recursion),就是再运行的过程中调用自己,本质上就是循环.

构成递归的条件有:

  Ⅰ.不能无限制的调用本身,必须有一个出口,化为简单的状况处理(非递归状况).

  Ⅱ.子问题和原始问题为同样的事情,且子问题更为简单.

由于递归是函数本身一层层压栈,导致先入栈的不能出栈,空间占满以后就会造成堆栈溢出的现象.

例如斐波那契数列在数学上就被以递归的方法定义:

  数列:1,1,2,3,5,8,13,21,34,55,89......

  这个数列从第三项开始,每一项都等于前两项之和.

  递归的方法定义:F(0)=1,F(1)=1,F(n)=F(n-1)+F(n-2)    (n>2, n∈N*)

求斐波那契数!
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        var n = Number(prompt('请输入所求斐波那契数的某项'))
        function feb (n) {
          // 第n项应该是n-1项加上n-2项的和
          // 递归的出口应该在第一项和第二项值为1
          if (n === 1 || n === 2) {
            return 1
          }
            return feb(n-1) + feb(n-2)
          
        }
        document.write('斐波那契数的第' + n + '项的值为:' + feb(n))
     
      </script>
</body>
</html>

最新文章

  1. SQL Server性能计数器收集汇总方案(Reporting Service)
  2. 怎样获取Windows平台下SQL server性能计数器值
  3. 运维利器-ClusterShell集群管理操作记录
  4. python2.x和3.x的区别
  5. (转载)RTorrent 命令行使用说明
  6. jquery源码学习之extend
  7. 萝卜叶万能助手SEO网络营销简介
  8. EditText小技巧
  9. 160929、各数据库连接配置与maven依赖安装
  10. [转]SQL Server建立应用程序安全性和程序角色
  11. WeChat Official Account Admin Platform Message API Guide
  12. C++重载解析
  13. 转: 向tabControl中添加一个Form(C#)
  14. ubuntu中出现警告:Gtk-WARNING**: 无法在模块路径中找到主题引擎:“pixmap”
  15. PHP新手之学习类与对象(2)
  16. Android简单计时器
  17. KTV项目之3个ListView的跳转和加载歌手图片
  18. EasyUI Form提交后json数据IE上需要下载(转)
  19. &lt;转&gt;jmeter(七)定时器
  20. c#简单案例--单位转换器

热门文章

  1. js中的内置方法的兼容写法
  2. pycharm在windows中如何安装dlib?
  3. Tomcat服务自动启动以隐藏start.bat命令窗口
  4. Html5 部分帮助文档 未完待续
  5. activiti设置customSessionFactories时的一个小坑
  6. Simulink仿真入门到精通(十一) 模块的封装
  7. 深入理解计算机系统 (CS:APP) - 高速缓存实验 Cache Lab 解析
  8. c# winform 访问WebServices 服务(通过WEB引用的方式进行访问)
  9. Java容器的常见问题
  10. Flutter 使用阿里巴巴icon库