函数的递归调用(专题)

递归调用:函数的递归调用,就是函数在执行的时候自动调用自己!

功能:当我们把一个大问题按照某种解决方案细化为若干个小问题的时候,结果我们发现这些小问题的解决方案又和前面大问题的解决方案是一样的!

语法格式:  function 函数名(){

//递归出口(不要忘了,不然进入死循环)

//调用其他函数;

函数名();

}

函数名();

所以,函数的递归有两个要素:

1,  递归出口:就是什么时候停止自己调用自己

2,  递归点:就是什么时候开始自己调用自己

案例:斐波那契数列,即前两项已知,从第三项开始,每一项都是前两项的和!

若前两项为1,则思路如下

1        (n<=2)       (出口)

F(n)

F(n-1)+F(n-2)  (n>=2)   (递归点)

function f($n){

//递归出口

If($n == 1||$n == 2){

return 1;

}

//递归点(由于就剩下一种结果了,我们可以直接使用即可)

$s=f($n-1)+f($n-2);

return $s

  }

    echo f($_GET[‘n’]);

回味一下过程:

特点:简单,但消耗内存,会占用大量的内在空间,当然运行较大的数会造成速度很慢

优化过程,就是一个步骤的重复执行,降低空间,引用我们的迭代思想

迭代思想:从前往后来解决问题,体现在代码上,其实就是一个步骤的重复的执行,也就是循环结构!

做算法的过程中,我们首先要把思想逻辑写一下

这样可以直接写代码了,甚至一气呵成

<?php

Function f($first,$second,$n){

//已知前两项

$before1 = $second;

$before2 = $first;

//条件判断前两项

if($n == 1){

return $first;

      }

      if($n == 2){

return $second;

      }

      for($i=3;$i<$n;$i++){

     $num = $before1 + $before2;

    $ before2=$before1;

      $before1=$num;

      }

      Return $num

    }

Echo f(1,1,$_GET[‘n’]);

算法思想并不是一朝一夕的,多加练习并总结,才是王道。

转载于:https://www.cnblogs.com/-010101/p/6085103.html

函数的递归调用(专题)相关推荐

  1. Python函数的递归调用

    一:递归的定义 函数的递归调用:是函数嵌套调用的一种特殊形式 具体是指: 在调用一个函数的过程中又直接或者间接地调用到本身 # 直接调用本身 def f1():print('是我是我还是我')f1() ...

  2. mysql通过函数完成10的阶乘_请使用函数的递归调用编写求阶乘的函数,并计算1!+2!+3!+4!+5!...

    点击查看请使用函数的递归调用编写求阶乘的函数,并计算1!+2!+3!+4!+5!具体信息 答:include "stdio.h" int fac(int k) { if(k==1) ...

  3. python入门day16——函数的递归调用、二分法、三元表达式、匿名函数

    文章目录 函数的递归调用 递归调用应该分为两个阶段 二分法 三元表达式 匿名函数 函数的递归调用 函数的递归调用:就是在调用一个函数的过程中又直接或间接地调用自己 示例1:直接调用自己 def foo ...

  4. C++函数的递归调用

    [转自微学苑] 在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归(recursive)调用。C++允许函数的递归调用。例如: int f(int x) {    int y,z; ...

  5. 函数的递归调用-年龄增大问题

    7-8 函数的递归调用 (10分) 有n个人坐在一起,第n个人比第n-1个人大2岁,第n-1个人比第n-2个人大2岁,以此类推,--,第1个人是10岁.请问第n个人年龄多大? 输入格式: 输入一个整数 ...

  6. MATLAB 函数的递归调用 例题

    MATLAB 函数的递归调用 例题 eg:利用函数的递归调用,求n!. 函数文件: function f=Untitled49(n) if n<=1f=1; elsef=Untitled49(n ...

  7. C语言函数之递归调用

    提示:本文主要是掌握函数的递归 函数递归 前言 什么是递归 递归的两个必要条件 递归与迭代的关系 递归函数的优缺点 什么时候使用递归 总结 前言 函数是学习C语言的最重要知识点之一,要学好这门编程语言 ...

  8. C语言:函数的递归调用

    函数的递归调用:一个函数在它的函数体内,直接或者间接地调用了他本身. 直接递归调用:函数直接调用自身.                              间接递归调用:函数间接调用自身. 如下 ...

  9. 在c语言中允许函数递归调用,c语言允许函数的递归调用吗

    c语言允许函数的递归调用吗 允许.C语言中的函数直接或间接调用自己的过程叫递归. 一.递归的两个必要条件 1.存在限制条件,当满足这个条件时,递归便不再继续. 2.每次递归调用之后越来越接近这个限制条 ...

最新文章

  1. 【干货】CNN与Transformer的强强联合!谷歌最新开源BoTNet,ImageNet达84.7%准确率
  2. Maven:基本使用
  3. 三 jQuery 选择器
  4. App Shortcuts 快捷方式 Android7 1 的3D Touch
  5. java8计算两个日期之间的天数
  6. matlab自适应遗传算法代码,matlab自适应遗传算法
  7. 使用vue开发的网易云音乐播放器
  8. CYY网页提取助手2.0绿色版正式发布
  9. PyCharm选择性忽略PEP8代码风格警告信息
  10. 对于图片倾斜做矫正处理
  11. 我的世界基岩版python插件编写教程(pyr教程)
  12. selenium 鼠标悬停事件
  13. 计算机报税流程,河南地税电子税务局电脑版纳税申报操作流程(图文)
  14. ChIP-seq分析流程(基于linux系统)
  15. NOJ1055叙拉古猜想——水题
  16. 如何用WxJump成功解决生成在微信可用的网址二维码的API接口
  17. 7-3 两个数的简单计算器 (20分)
  18. 基于OpenCV的传统视觉应用 -- OpenCV图像处理 图像模糊处理 图像锐化处理
  19. HashMap和HashTab区别
  20. ximalaya一键音频保存到电脑

热门文章

  1. 汇编-子程序参数传递的三种方式-寄存器法,堆栈法,参数赋值法【详述后两者】
  2. 什么是机器学习:一次权威定义之旅
  3. 9.为包含指针的关联容器指定比较类型
  4. c语言预处理器指令的简单例子
  5. 使用using与typedef来定义别名
  6. tcp三次握手四次挥手(及原因)详解
  7. 猜想:汇编指令push和pop对sp的处理顺序缘由
  8. 志愿填报显示服务器错误,高分落榜案例:志愿填报常见的3个低级错误
  9. python锁有哪几种_python 可重入锁有什么用?
  10. python 多维数组轴_python – numpy通过任意轴重塑多维数组