使用递归和斐波那契数列解决问题
/**
* 该函数用递归实现
* @param int $n 阶梯数
*/
function jieti($n){
if($n==1){
//jieti(1)=1
return 1;
}
elseif($n==2){
//jieti(2)=2
return 2;
}
elseif($n==3){
//jieti(3)=4
return 4;
}
return jieti($n-1)+jieti($n-2)+jieti($n-3);
}
//主要通过公式,然后让公式一步步的分解成已知条件
//f(n)=f(n-1)+f(n-2)+f(n-3)
function step($n){
$res=0;
$a=1;
$b=2;
$c=4;
for($i=4;$i<=$n;++$i){
$res=$a+$b+$c;
$a=$b;
$b=$c;
$c=$res;
if($i==$n){
return $res;
}
}
}