php 常见递归实例
//计算数组{1,1,2,3,5,8.......} 第n位值
function Process1($i){
if ($i == 0) return 0;
if ($i == 1) return 1;
else{
return Process1($i - 1) + Process1($i - 2);
}
}
//计算1+2+3+4+...+100+n的值
function Process2($i)
{
if ($i == 0) return 0;
return Process2($i - 1) + $i;
}
//计算1 -2 +3 +-4+ 5- 6 + 7 - 8 + n的值
function Process3($i)
{
if ($i == 0) return 1;
if ($i == 1) return 2;
else return Process3($i - 2) + $i;
}
//汉诺塔(又称河内塔)问题
function hanoi($n,$x,$y,$z){
if($n==1){
move($x,1,$z);
}else{
hanoi($n-1,$x,$z,$y);
move($x,$n,$z);
hanoi($n-1,$y,$x,$z);
}
}
function move($x,$n,$z){
echo 'move disk '.$n.' from '.$x.' to '.$z.'<br/>';
}
调用:echo hanoi(5,'x','y','z');
php 常见递归实例的更多相关文章
- php中的curl使用入门教程和常见用法实例
摘要: [目录] php中的curl使用入门教程和常见用法实例 一.curl的优势 二.curl的简单使用步骤 三.错误处理 四.获取curl请求的具体信息 五.使用curl发送post请求 六.文件 ...
- 【python库模块】Python subprocess模块功能与常见用法实例详解
前言 这篇文章主要介绍了Python subprocess模块功能与常见用法,结合实例形式详细分析了subprocess模块功能.常用函数相关使用技巧. 参考 1. Python subprocess ...
- py_递归实例:汉诺塔问题
递归的两个特点 调用自身 结束条件 # _*_coding:utf-8 ''' 递归实例:汉诺塔问题 n----盘子总数 a----第一个柱子 b----第二个柱子 c----第三个柱子 n个盘子时: ...
- SQL笔记 - CTE递归实例:显示部门全称
昨天在整理JS的Function时,示例是一个递归函数.说起递归,想起前段时间在搞CTE,那个纠结呀,看似容易,可我总抓不住门道,什么递归条件,什么结束条件,一头雾水...今天一大早就爬起来,果然不负 ...
- SQL Server递归实例
例子一 -- ============================================= -- 根据EID返回其下属的EID,Layer=1表示直接下属,NULL返回所有下属 -- s ...
- python3之递归实例
一.利用递归求: 1+2+3+4+5...+n的前n项和 def recursion_sum_1(n): #当n = 1:和为1 #否则,n的和等同于 n + (n -1) if n == 1: re ...
- python(递归实例)
摘要:在学习python递归知识点时,总是一知半解,似懂非懂的..在反复看视频翻资料同时,也收集案例来分析求证..通过分析下面几个案例希望能有所帮助!!! 1.用递归的方法实现阶乘... def nu ...
- Python全栈开发:递归实例
#!/usr/bin/env python # -*- coding;utf-8 -*- """ 递归不能无限,python会限制递归深度,递归主要用于费布拉切数列 &q ...
- nginx常见应用实例
1.nginx 中 location 应用实例location 是 nginx 的精华,nginx 就是通过拦截到的请求去对配置好的 location 块(location block)进行请求代理的 ...
随机推荐
- 没有dig命令的结觉方法
-bash: dig: command not found rpm -qa bind-utils 查看没有没安装 bind-utils 包 yum install -y bind-utils 解决
- Navicat断网时连不上数据库
最近安装了破解的Navicat,在有网的条件下可以连接本地安装的MySQL数据库,但断网之后就不可以,如下: 于是上网查资料,发现原因为: localhost可以看成是一个域名,在一大部分情况下,它能 ...
- oracle 常用set命令
SQL> set timing on; //设置显示“已用时间:XXXX”SQL> set autotrace on; //设置允许对执行的sql进行分析 ...
- 返回键的复写onBackPressed()介绍
本篇文章是对Android中返回键的复写onBackPressed()进行了详细的分析介绍,需要的朋友参考下 在android开发中,当不满足触发条件就按返回键的时候,就要对此进行检测.尤其是当前Ac ...
- day35-hibernate映射 03-Hibernate持久态对象自动更新数据库
持久态对象一个非常重要的能力:自动更新数据库. package cn.itcast.hibernate3.demo1; import static org.junit.Assert.*; import ...
- SQL 连贯操作 [2]
1.alias 用于设置数据表别名 $user = M('User'); var_dump($user->alias('anothername')->select()); 这时在SQL中的 ...
- Linux 设置新创建目录或文件的默认权限
一.简介 在unix或者linux中,每创建一个文件或者目录时,这个文件或者目录都具有一个默认的权限,比如目录755,文件644,这些默认权限是通过"umask"权限掩码控制的.一 ...
- ENCODE:DNA 分子元件的百科全书
ENCODE(DNA分子元件的百科全书)是由国家人类基因研究所(NHGRI)资助的一个国际研究联盟, 该联盟的目标是:建立一份综合的人类基因组功能元件的清单,这些基本元件包括那些直接作用蛋白质和RNA ...
- p4377 [USACO18OPEN]Talent Show
传送门 分析 经典的01分数规划问题 用01背包check即可 代码 #include<iostream> #include<cstdio> #include<cstri ...
- ZROI2018普转提day2t2
传送门 分析 我们发现2R+C实际就相当于R行C列的子集的个数.因此我们可以将所有集合的子集个数转换为每个集合属于的集合的个数.所以我们可以求出: 这个式子的意义为对于选i行j列的情况的所有方案乘上i ...