迭代-php 求解走楼梯的算法

问题描述

php 求解走楼梯的算法

设 有50阶楼梯的。一次可以 1阶 或 2阶.求一共有几种走法。求迭代和递归法。 代码能不能打印每一次走法的每一步是几阶? 譬如 1-2-1-1-2...,1-1-1-1...,.共N种走法

解决方案

关于走楼梯的递归算法

解决方案二:

http://www.cfanz.cn/index.php?c=uc/topic&a=read&id=1366

解决方案三:

class Atairs{
private static $numStep=1;
public function goStep($num){

    if($num>1){
        $step=mt_rand(1,2);
        $laststep=$num-$step;
        echo "第".self::$numStep."次走了".$step."步,还有".$laststep."步<br>";
        static::$numStep++;
        self::goStep($laststep);
    }elseif ($num==1) {
        echo "第".self::$numStep."次走了".$num."步,还有0步<br>";
        self::goStep(0);
    }else{
        echo "走完了";
    }
}

}

$obj=new Atairs();
$obj->goStep(50);

时间: 2024-12-26 22:35:37

迭代-php 求解走楼梯的算法的相关文章

3D游戏中的碰撞检测以及爬楼梯的算法

问题描述 3D游戏中的碰撞检测以及爬楼梯的算法 比如说在地面上的时候,人是直着往前走的,当遇到楼梯以后,就不能往前走了,而是会直接沿着楼梯向上走,请问这个怎么实现呢??比如这个例子中的上楼梯的算法是怎么实现的呢?http://www.babylonjs.com/Demos/WCafe/ 解决方案 简单碰撞检测的3D游戏3D游戏中的碰撞检测android 3D 游戏实现之简单碰撞检测

对给定的图结构,实现求解最小生成树的Kruskal算法,并给出求解过程的动态演示。

问题描述 对给定的图结构,实现求解最小生成树的Kruskal算法,并给出求解过程的动态演示. 我想问的是,这个算法编写出来的代码怎么运行实现动态演示,不会..求高手赐教 解决方案 我觉得所谓动态演示,无非就是你要画出一个图,表示节点和边.然后每添加/删除一条边,间隔几秒钟,画出来. 这样就是动态演示了. 解决方案二: http://zhidao.baidu.com/link?url=cWDT4w0qf9IvupdcjRf2IR5TyoZpVoKOXlpGwR6td7wwpQb1xGJIfyP_Y

acm 算法 暴力-acm水题求解,关于贪心算法

问题描述 acm水题求解,关于贪心算法 #include #include #include using namespace std; /* run this program using the console pauser or add your own getch, system("pause") or input loop / ???? int main(int argc, char* argv) { ???? int M,N; ???? while(cin>>M&g

马走日棋盘算法

问题描述 在给定大小的方格状棋盘上, 将棋子"马"放在指定的起始位置 , 棋子"马" 的走子的规则为必须在棋盘上走"日"字; 从棋子"马"的起始位置开始, 搜索出一条可行的路径, 使得棋子"马"能走遍棋盘上的所有落子点, 而且每个落子点只能走一次; 例如: 棋盘大小为5*5 , 棋子马放的起始落子点为 ( 3 , 3 ) ; 算法需要搜索一条从位置( 3 , 3 ) 开始的一条包括从( 1 , 1 ) ,

求解一道A^B算法的密文

问题描述 密文:914e235e45894f5e39a1bc7e2cbe3939A^B算法求解下面是资料:快速求A^B算法把B用二进制表示:例如假如:B=101011B=2^5+2^3+2^1+2^0A^B=A^(2^5)*A^(2^3)*A^(2^1)*A^(2^0)=A^(2^5+2^3+2^1+2^0)=A^B所以可以从B的低位开始,循环并计算A^(2^0),A^(2^1),A^(2^2)....同时,并且判断B的该位是否为1,如果为1,把当前计算的A^(2^i)累乘到结果中.我看不懂所以

高分求助: 求解一个关于数据算法的问题!

问题描述 ::::求一个节省代码的算法::::有0123456789十个数.要求打印出:2位数组合的数3位数组合的数4位数组合的数5位数组合的数6位数组合的数7位数组合的数8位数组合的数9位数组合的数10位数组合的数举个例子,比如2位数组合的数:00010203040506070809101112131415161718192021222324252627282930313233343536373839.............................909192939495969798

高分求解基本的java算法题

问题描述 例如:int[][] a={{1,2,3,4,5},{1,2,3,4,6},{1,2,3,4,7}};行合并的规则为:两行中只相差一个数字,就把相差的数字进行合并,例如将a进行行合并处理后,变为:int[][] b={{1,2,3,4,11},{1,2,3,4,7}};再对 b进行行合并后,变为:int[][] c={{1,2,3,4,18}};请用java写出能实现合并规则,行数最多可能为5万. 问题补充:jobar 写道 解决方案 试写一个:import java.util.Arr

模拟退火算法求解TSP问题

一.问题描述 旅行商问题,即TSP问题(Travelling Salesman Problem)是数学领域中著名问题之一.假设有一个旅行商人要拜访n个城市,他必须选择所要走的路径,路经的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市.路径的选择目标是要求得的路径路程为所有路径之中的最小值. 图1 TSP问题的示意图 二.遍历算法 一个最容易想到的方法是利用排列组合的方法把所有的路径都计算出来,并逐一比较,选出最小的路径.虽然该方法在理论上是可行的,但路径的个数与城市的个数成指数增长,当

数据挖掘十大经典算法(详解)

数据挖掘十大经典算法  一. C4.5  C4.5算法是机器学习算法中的一种分类决策树算法,其核心算法是ID3 算法.   C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进:  1) 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足:  2) 在树构造过程中进行剪枝:  3) 能够完成对连续属性的离散化处理:  4) 能够对不完整数据进行处理.  C4.5算法有如下优点:产生的分类规则易于理解,准确率较高.其缺点是:在构造树的过程中,需要对数据