斐波那契数列:1 1 2 3 5 8 …
满足要求:当前项 = 前第一项 + 前第二项
现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。
编写一个类,在类中编写两个静态方法,分别使用递归和非递归方法实现上述要求
class metchs{
public static function fun($n)
{
static $array = array();
if($n <= 0) return 0;
if($n == 1 || $n ==2 ) return 1 ;
$array['1'] = 1 ;
$array['2'] = 1 ;
for($i=3; $i<=$n; $i++)
{
$array[$i] = $array[$i-1]+$array[$i-2] ;
}
return $array[$n];
}
public static function fun1($n)
{
if($n <= 0) $m = 0;
if($n == 1 || $n ==2 ) $m = 1 ;
if($n>= 3)
{
$m = self::fun1($n-1)+self::fun1($n-2);
}
return $m ;
}
}
$n = 20;
echo metchs::fun($n);
echo metchs::fun1($n);