您的位置:首页 > 其它

二十三、杨辉三角 【使用二维数组输出】

2015-01-17 23:18 204 查看

<?php

//输出杨辉三角图

$n = 8;

echo "<pre>";

for($i = 1; $i <= $n; ++$i){

 for($k = 1; $k <= $i; ++$k){

  if($k == 1 || $k == $i){//对于每一行的最前最后一个

   $arr[$i][$k] = 1;

  }

  else{//对于其他数据:根据规律要找“前一行”数据

   if($i > 1){//如果是非第一行:一般规律

    //实际上,这个if($i > 1)的判断,根据后面else中的分析,是没必要写的

    $arr[$i][$k] = $arr[$i-1][$k] + $arr[$i-1][$k-1];

   }

   else{

    //这里,本来是应该处理“第一行”的情况,

    //但是:对于第一行,在前面的if($k == 1 || $k == $i)

    //中,已经包括该情况,即根本不会进入本else语句块

    //如果想不清楚,你就干脆:$arr[1][1] = 1;

   }

  }

  echo $arr[$i][$k];

  echo "\t";

 }

 echo "<br />";

}

echo "</pre>";

简写完整的杨辉三角

<?php

  //输出n行杨辉三角   (n可以任意指定) 可以使用二维数组

   function yhsj($n){

        for($i=1;$i<=$n;$i++){

     for($j=1;$j<=$i;$j++){

         if($j==1 || $j==$i){

          $arr[$i][$j]=1;

      }else{

          $arr[$i][$j]=$arr[$i-1][$j]+$arr[$i-1][$j-1];

      }

      echo $arr[$i][$j]."   ";

     }

     echo "<br/>";

  }

  

   }

  yhsj(8);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: