php 递归 适合刚刚接解递归的人看
递归,就是自己调用自己,当满足某条件时层层退出(后进先出)。
----------------------------------------------------------------------------------------------
就像你要完成一项任务A,结果完成任务A之前必须先完成任务B,完成B前必须先完成C。。。。直到所以前提任务完成。
你所接触的任务顺序是:A->B->C,也就是先进
完成任务的先后顺序是:C->B->A,也是就是(先出)
两者结合起来,不难看出后进先出
在这个过程中,不管完成任C还是B或A,都是你自己本身完成的,也就是函数本身
----------------------------------------------------------------------------------------------
完成任务的过程是不是和大家玩的有些游戏很相似,比如地下城,完成某任前必须先完成前得任务。
再比如DOTA,想要买狂战斧,但不得不把所需要的装备买好。道理大同小异吧。
----------------------------------------------------------------------------------------------
上述所讲的例子,针对于对递归完全不了解的人可看,如果有什么不恰当的地方,望指出,不然把大家祸害了,
那我的罪过就大了。哈哈。
----------------------------------------------------------------------------------------------
function test($n)
{
if($n ==1 || $n ==0) return 1;
return test($n -1) +2;
}
echo test(5);
test(5) = test(4) + 2 = 7+2=9; 4
test(4) = test(3) + 2 = 5+2=7; 3
test(3) = test(2) + 2 = 3+2=5; 2
test(2) = test(1) + 2 = 1+2=3; 1
test(1) = 1; 0 //当$n = 1时,已无法继续调用test,所以递归将层层退出(遵循后进先出的原则)
//后进先出,才能层层取得结果,如:先取得test(2)的值,才能计算出test(3)值,依此类推
只要明白递归的原理就可以了,如果你试图用大脑层层想下去,我估计记忆不好点一点的就陷进去了,结果搞得很头疼。
php 递归 适合刚刚接解递归的人看的更多相关文章
- 刚開始学习的人制作VMOS场效应管小功放
VMOS场效应管既有电子管的长处又有晶体管的长处,用它制作的功率放大器声音醇厚.甜美,动态范围大.频率响应好.因此近年来在音响设备中得到了广泛应用. 大功率的场效应管功率放大器.电.路比較复杂.制作和 ...
- hdu5044 Tree 树链拆分,点细分,刚,非递归版本
hdu5044 Tree 树链拆分.点细分.刚,非递归版本 //#pragma warning (disable: 4786) //#pragma comment (linker, "/ST ...
- SQL Server中CTE的另一种递归方式-从底层向上递归
SQL Server中的公共表表达式(Common Table Expression,CTE)提供了一种便利的方式使得我们进行递归查询.所谓递归查询方便对某个表进行不断的递归从而更加容易的获得 ...
- Oracle Statspack报告中各项指标含义详解~~学习性能必看!!!
Oracle Statspack报告中各项指标含义详解~~学习性能必看!!! Data Buffer Hit Ratio#<#90# 数据块在数据缓冲区中的命中率,通常应该在90%以上,否则考虑 ...
- wxWidgets刚開始学习的人导引(2)——下载、安装wxWidgets
wxWidgets刚開始学习的人导引全目录 PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用wxS ...
- wxWidgets刚開始学习的人导引(1)——前言
wxWidgets刚開始学习的人导引全文件夹 PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用wx ...
- 作为刚開始学习的人应该怎样来学习FPGA
FPGA作为一种高新的技术.已经逐渐普及到了各行各业.不管是消费类.通信类.电子行业都无处不在它的身影,从1985年第一颗FPGA诞生至 今,FPGA已经历了将近20多个年头,从当初的几百个门电路到如 ...
- 图文并茂VLAN详解,让你看一遍就理解VLAN
一.为什么需要VLAN 1.1.什么是VLAN? VLAN(Virtual LAN),翻译成中文是“虚拟局域网”.LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成的企业网络.V ...
- wxWidgets刚開始学习的人导引(3)——wxWidgets应用程序初体验
wxWidgets刚開始学习的人导引全文件夹 PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用wx ...
随机推荐
- asp.net 安全性相关参考
<system.web> <depolyment retail="true" /> </system.web> AntiXSS http:/ ...
- Jmeter命令行方式启动
在性能测试过程中,我们常常遇到这样的问题,使用Jmeter的GUI界面进行大并发量的性能测试时,界面容易卡死,无法继续进行性能测试.通过使用命令行方式启动jmeter是一个不错的方式.下面就简单介绍一 ...
- python学习笔记(递归函数)
博主看了看递归.说的简单点就是程序里面再调用程序本身,或者是方法里面再调研方法本身.或者是函数里面再调研函数本身 用于什么场景呢,博主这里是父子节点排序,父子节点的查询 直接上代码: #!/usr/b ...
- 百度富文本编辑器UEditor安装配置全过程
网站开发时富文本编辑器是必不可少的,他可以让用户自行编辑内容的样式然后上传到后台!下面我们来介绍如何安装使用百度富文本编辑器 一.下载并且设置百度富文本编辑器的样式 你可以去百度UEditor ...
- struts2拦截器拦截成功后每次请求都出现拦截时的错误信息
action中验证方法 在执行execute之前执行 @Override public void validate() { // TODO Auto-generated metho ...
- javascript设计模式-外观模式
也可译为门面模式.它为子系统中的一组接口提供一个一致的界面, Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用.引入外观角色之后,使用者只需要直接与外观角色交互,使用者与子系统之 ...
- 安装Ecshop首页出现报错:Only variables should be passed by referen
出现下面这就话: Strict Standards: Only variables should be passed by reference in E:\Tools\ECShop_V2.7.3_UT ...
- druid parser
有没有好用的开源sql语法分析器? - 匿名用户的回答 - 知乎 druid parser
- 嵌入在C++程序中的extern "C"
1.extern的作用 extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,可以告知编译器,用extern声明的函数和变量可以在本模块或其它模块中使用. 通常,在模块的头文件中 ...
- 让内层Div将外层Div撑开
在CSS排版中,如果一个层中的层使用了float浮动的话,那么就有可能会出现外层没有被内层撑开的情况,如以下代码所示: <div style="width:300px; "& ...