题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)
解题思路
n -- m n -- m
1 -- 1 5 -- 8(11111、122、212、221、1112、1211、1121、2111)
2 -- 2
3 -- 3 m = (n-1) + (n-2)
4 -- 5
由题意可知此题和斐波那契数列解法相同
代码实现
动规 - PHP
function jumpFloor($number)
{
if ($number === 1 || $number === 2) return $number;
$pre = 1;
$next = 2;
for ($i = 3; $i <= $number; $i++) {
$sum = $pre + $next;
$pre = $next;
$next = $sum;
}
return $sum;
}
递归 - PHP
function jumpFloor($number)
{
if ($number === 1 || $number === 2) return $number;
$sum = jumpFloor($number - 1) + jumpFloor($number - 2);
return $sum;
}
递归 - GOlang
/**
* 递归
*
* @param number int整型
* @return int整型
*/
func jumpFloor( number int ) int {
if number == 1 || number == 2 {
return number
}
return jumpFloor (number - 1) + jumpFloor (number - 2)
}
还不快抢沙发