php实现菲波那切数列和杨辉三角

时间:2023-03-09 16:42:10
php实现菲波那切数列和杨辉三角

1.递归  显示斐波那契数列

<?PHP
        function recursion($num){
              //判断是否小于0
              if($num<0){
                     return -1;
              }
             if($num==1){
                    return 0;
              }
             if($num==2 || $num==3){
                   return 1;
              }
             return recursion($num-1)+recursion($num-2);
          }

//循环显示

for($i=1;$i<=20;$i++) {
                 $str .= ',',recursion($i);
           }   
           $str = substr($str,1);
          echo $str;
 ?>

2.迭代 显示斐波那契数列
function diedai($num){
    if($num<1){
        return -1;
    }
    //默认前两位为1
    $arr[0] = 0;
    $arr[1] = 1;
    for ($i=2; $i <$num ; $i++) {
        $arr[$i] = $arr[$i-1]+$arr[$i-2];
    }
    return implode(',', $arr);
}
      echo diedai(6);
 ?>

3. 杨辉三角
  <table border="1">
      <?php
          $num = 14;
          $arr = array();
          for($i=1;$i<=$num;$i++)
          {
              echo "<tr>";
              for($j=1;$j<=$i;$j++)
              {
                  if($j==0||$i==$j)
                  {
                      $arr[$i][$j] = 1;
                  }
                  else
                  {
                      $arr[$i][$j] = $arr[$i-1][$j]+$arr[$i-1][$j-1];
                  }
                 echo "<td>";
                 echo $arr[$i][$j];
                 echo "</td>";
              }
              echo "</tr>";
          }
       ?>