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

这篇博客探讨了一种非传统方法,即通过创建类来解决经典的楼梯问题,而不是使用递归函数。问题描述为:有n个台阶,每次可以迈1步或2步,问有多少种不同的上楼方式。示例代码中展示了如何用PHP类来构建解决方案,通过类的实例化和方法调用来模拟递归过程。最后,当达到总台阶数时,触发回调函数打印路径。此方法虽不常见,但有助于理解面向对象编程和递归思想的结合。
摘要由CSDN通过智能技术生成

问题:一个楼梯有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

支付宝 赏一听可乐吧~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值