php类的举例,用类来代替递归方法,用php举例_php _ 搞代码

问题:一个楼梯有n个台阶,每次上一个或两个台阶,共有多少种上法, 每种走法的步骤是什么样的?

这个简单问题,我们通常的方法是写一个递归调用,简单明了。但是,这里通过类的叠加来实现,虽然本身没有太大的意义,但是这种设计的用途还是满多的,可以自己考虑考虑。

//一个楼梯有n个台阶,每次上一个或两个台阶,共有多少种上法, 每种走法的步骤是什么样的.

define('TOTLE_STEP', 10);

$p = '';

$obj = new step($p, 0, 0);

http://www.gaodaima.com/46654.html用“类”来代替“递归方法”,用php举例_php

$obj->go();

class step{

var $parent;

var $count;

var $step;

var $son1;

var $son2;

function step(&$parent, $step, $count){

$this->parent = &$parent;

$this->step = $step;

$this->count = $count + $step;

}

function go(){

if($this->count==TOTLE_STEP)

$this->callback();

if($this->count<=TOTLE_STEP-1){

$this->son1 = new step($this, 1, $this->count);

$this->son1->go();

}

if($this->count<=TOTLE_STEP-2){

$this->son2 = new step($this, 2, $this->count);

$this->son2->go();

}

}

function callback($str=''){

if($this->parent!=null){

$str = $this->step.$str;

$this->parent->callback('--'.$str);

}else{

echo $str.'
';

}

}

}

?>

欢迎大家阅读《用“类”来代替“递归方法”,用php举例_php》,跪求各位点评,若觉得好的话请收藏本文,by 搞代码

e7ce419cf2d6ad34d01da2ceb8829eed.png

微信 赏一包辣条吧~

023a57327877fb4402bcc76911ec18ea.png

支付宝 赏一听可乐吧~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/550802.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql创建多实例,mysql 单服务器创建多实例

mysql单服务器启动多个实例实际有两种方式第一种方式就是使用mysql mysqld_multi第二种方式就是分别使用不同的目录端口启动不同的实例第一种方式&#xff1a;1、数据库实例目录data3306data3307data33082、创建实例/usr/local/mysql//scripts/mysql_install_db –basedir/usr…

matlab st变换,ST转换(matlab代码)

【实例简介】【实例截图】【核心代码】samplingrate 0.00005;[s,t,f]st(amplitude,0,0.5/samplingrate,samplingrate,1);Tmax(t);subplot(3,1,1),plot(t,amplitude,color,k,linewidth,1)xlabel(时间/s);ylabel(幅值/V);xlim([0 T]);% title(微震波形,FontName,Times New Roman…

easyexcel安全扫描报php,easyExcel使用以及踩过的坑

easyExcel介绍:Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存&#xff0c;poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题&#xff0c;但POI还是有一些缺陷&#xff0c;比如07版Excel解压缩以及解压后存储都是…

python selenium下载,在python中通过Selenium Webdriver下载文件

在使用新的FirefoxProfile时&#xff0c;使用set_preference方法来配置配置文件&#xff0c;这样就可以单击Save和{}&#xff0c;并且在下载过程中不会被中断。您可以按如下方式设置配置&#xff1a;profile webdriver.FirefoxProfile()profile.set_preference("browser.…

用python做人脸识别的程序怎么做,10分钟学会使用python实现人脸识别(附源码)

前言今天&#xff0c;我们用Python实现简单的人脸识别技术&#xff01;Python里&#xff0c;简单的人脸识别有很多种方法可以实现&#xff0c;依赖于python胶水语言的特性&#xff0c;我们通过调用包可以快速准确的达成这一目的。这里介绍的是准确性比较高的一种。一、首先梳理…

matlab是那个国家,这是一个老外写的利用曲率来识别硬币的MATLAB程序。作者所在国家的硬币偏黄色,拍摄的时候反光比较少...

这是一个老外写的利用曲率来识别硬币的MATLAB程序。作者所在国家的硬币偏黄色&#xff0c;拍摄的时候反光比较少2016-08-22 0 0 0 暂无评分其他1积分下载如何获取积分&#xff1f;这是一个老外写的利用曲率来识别硬币的MATLAB程序。作者所在国家的硬币偏黄色&#xff0c;拍摄的…

oracle中12523,【Oracle】静态监听导致的ORA-12523错误

今天配置完共享服务器模式之后发现登录过程中报错ORA-12523&#xff0c;排查错误之后发现是静态监听惹的祸。本机之上有两个监听&#xff0c;一个静态监今天配置完共享服务器模式之后发现登录过程中报错ORA-12523&#xff0c;排查错误之后发现是静态监听惹的祸。本机之上有两个…

线性回归中oracle性质,66.Oracle数据库SQL开发之 高级查询——使用线性回归函数...

66.Oracle数据库SQL开发之 高级查询——使用线性回归函数线性回归函数可以用普通最小平方回归曲线拟合一组数值对。线性回归函数可用于聚合、串口或报表函数。如下图1&#xff1a;例如&#xff1a;storePDB1> selectprd_type_id,regr_avgx(amount,month) as avgx,regr_avgy(…

angularjs php 实例下载,AngularJS Eclipse 1.2.0 插件下载

【实例简介】AngularJS Eclipse 插件为Eclipse提供对AngularJS的支持【实例截图】【核心代码】org.eclipse.angularjs.category-1.2.0├── artifacts.jar├── content.jar├── features│ ├── angularjs-eclipse-feature.source_1.2.0.201606160950.jar│ ├── …

oracle asm磁盘回收步骤,【翻译自mos文章】回收 asm磁盘空间的方法

回收 asm磁盘空间的方法参考原文&#xff1a;How To Reclaim Asm Disk Space? (Doc ID 351866.1)适用于&#xff1a;Oracle Database - Enterprise Edition - Version 10.2.0.1 and laterInformation in this document applies to any platform.***Checked for relevance on 1…

Oracle 4dae,如何处理Python-CXOracle中未知词的错误报告问题,pythoncxOracle,查询,到,生僻字,报错...

关于编码GBK编码是GB2312编码的超集&#xff0c;向下完全兼容GB2312&#xff0c;同时GBK收录了Unicode基本多文种平面中的所有CJK汉字。GB18030编码向下兼容GBK和GB2312&#xff0c;兼容的含义是不仅字符兼容&#xff0c;而且相同字符的编码也相同。GB18030收录了所有Unicode3.…

impala写入oracle,dataframe 写入 impala 语法错误,怎么解决?

dataframe写入impala出现语法错误&#xff0c;错误&#xff1a;Exception in thread "main" java.sql.SQLException: [Simba]ImpalaJDBCDriver ERROR processing query/statement. Error Code: 0, SQL state: TStatus(statusCode:ERROR_STATUS, sqlState:HY000, erro…

php windows 64下载地址,VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器教程&#xff1a;其它版本推荐&#xff1a;vscode简介&#xff1a;vscode是一个运行于 Mac OS X、Windows和 Linux 之上的&#xff0c;针对于编写现代 Web 和云应用的跨平台源代码编辑器。该编辑器也集成了所有一款现代编辑器所应该具备…

linux 源码目录结构,分析Android 源代码编译前后的目录结构

我们看没有编译前的项目目录大致的情况如下 &#xff1a;在树结构中我们可以了解的有如下一些信息分析&#xff1a;1. getSplashy 项目名称&#xff1b;2. src 项目程式&#xff1b;3. com 早…

linux vps 运行exe文件夹,在centos环境下运行.exe文件

首先要了解一下Wine&#xff1a;Wine (“Wine Is Not an Emulator” 的首字母缩写)是一个能够在多种 POSIX-compliant 操作系统(诸如 Linux&#xff0c;Mac OSX 及 BSD 等)上运行 Windows 应用的兼容层。Wine (Wine Is Not an Emulator)[即Wine不是一个模拟器]是一个在Linux和U…

linux运行时命令找不到,linux - 在运行Bash脚本时找不到命令,但是在直接运行命令时有效 - 堆栈内存溢出...

我一直在使用letencrypt为我的网站生成SSL证书&#xff0c;更具体地说是letencrypt_webfaction。 当我在项目中运行此命令时&#xff0c;它可以工作letsencrypt_webfaction --letsencrypt_account_email --domains --public --username --password 但是&#xff0c;当我在bash脚…

linux iconv命令详解,iconv命令

iconv命令&#xff1a;Convert encoding of given files from one encoding to another&#xff0c;更改文件的编码格式语法格式&#xff1a;iconv -f encoding -t encoding inputfile常用选项&#xff1a;-f encoding :把字符从encoding编码开始转换-t encoding :把字符转换到…

linux服务器u盘启动项检测不到,将U盘设置为第一启动项之后却检测不到U盘怎么办?...

对于如何使用U盘装系统&#xff0c;想必看过小编之前介绍的朋友应该大致都清楚了吧?虽然说咱们使用U盘装系统的操作步骤还是比较简单的&#xff0c;但是却必须要满足一个条件&#xff0c;那便是将咱们的U盘设置为第一启动项&#xff0c;那么如何进行设置呢?这便需要在咱们win…

linux内核io源码,Linux Kernel do_io_submit()函数整数溢出漏洞

发布日期&#xff1a;2010-09-21更新日期&#xff1a;2010-09-27受影响系统&#xff1a;Linux kernel 2.6.x不受影响系统&#xff1a;Linux kernel 2.6.36-rc4描述&#xff1a;--------------------------------------------------------------------------------BUGTRAQ ID: …

linux6无法启动iscsi服务,RHEL6下安装配置ISCSI服务器

1.安装所需软件:yum –y install scsi-target-utils iscsi-initiator-utils功能说明:scsi-target-utils&#xff1a;用来将 Linux 系统仿真成为 iSCSI target 的功能&#xff1b;iscsi-initiator-utils&#xff1a;挂载来自 target 的磁盘到 Linux 本机上。2.target的设定:----…