题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
分析:假设目前有10个台阶,那么到第10个的方案有两种,就是从第8个到第10个,从第9个到第十个。也就是说,到第10个的方案,就是到第8个和第9个的方案之和!类似于 斐波那契数列!
function jumpFloor($number)
{
if (0 >= $number) {
return false;
}
if (1 == $number || 2 == $number) {
return $number;
}
$total = 0;
$f1 = 1;
$f2 = 2;
for ($i = 3; $i <= $number; $i++) {
$total = $f1 + $f2;
$f1 = $f2;
$f2 = $total;
}
return $total;
}