热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHP青蛙跳台阶算法,每次可以跳1级或两级,请问有n级台阶有多少种算法

青蛙跳台阶算法,每次可以跳1级或两级,请问有n级台阶,有多少种算法,递归和非递归如何写假设,一级台阶ÿ

青蛙跳台阶算法,每次可以跳1级或两级,请问有n级台阶,有多少种算法,递归和非递归如何写

 

假设,一级台阶,有f(1)种方法,二级有f(2)种,以此类推,n级有f(n)种方法。

可以看出,f(1)=1;f(2)=2。

那么,假设n级台阶,那么第一步就有两种情况,跳一步,跟跳两步。

情况一:跳一步,那么接下去的就是f(n-1);

情况二:跳两步,那么接下去的就是f(n-2)。

所以总数是f(n)=f(n-1)+f(n-2)。
 

 

 

循环

public function index(){$n &#61; 10 ;//台阶数$one &#61; 1 ;$two &#61; 2 ;$sum &#61; 0;//2*f($n-1)for ($i&#61;3; $i <$n; $i&#43;&#43;) { $sum &#61; $two;$two &#61; $one&#43;$two;$one &#61; $sum;}return $one &#43; $two;}

 

递归

 

递归实现&#xff1a;
public int index(int n){if (n <0)return 0;int[] fibArry &#61; { 0, 1, 2 };if (n <3)return fibArry[n];return index(n - 1) &#43; index(n - 2);}


public int JumpFloor(int target) {if(target&#61;&#61;0)return 1;if(target&#61;&#61;1)return 1;else{return JumpFloor(target-1)&#43;JumpFloor(target-2);}
}

 


推荐阅读
author-avatar
手机用户2502860131
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有