PHP代码练习 实录

来源:互联网 发布:数据科学实战手册 编辑:程序博客网 时间:2024/06/09 18:10


<?php
/*$n=10;   
       for($i=1; $i<=$n; $i++){
         for($k=1; $k<=$n-$i; $k++){
                echo "&nbsp;";
          }
    


                for($j=1; $j<=2*($i-1)+1;$j++){
               if($i==1){
                        echo "*";
                  }else{
        if($j==1||$j==2*$i-1){
            echo "*";
               }else{
                echo "&nbsp;";
     
      }
         }
         }
     echo "<br/>";
 }
 */


//打金子字塔练习
//思路:打印如下的金字塔
//       *                *      第1层 1星   2空格     //层数和空格数$k的关系:$i-1=$k
 //      **   ---->      ***     第2层 3星   1空格     //层数和星个数$j的关系:($i-1)*2+1=$j
 //      ***            *****    第3层 5星   0空格
 
 //(半个金字塔--->1个金字塔转变)
 //1.要有两个变量 一个控制行,一个控制列
//2.空格 和 *打印的顺序的问题(哪个优先)
//3.要打整个金字塔,先从何处着手,能不能
//先打半个金字塔,再从半个金字塔着手打印整个金字塔
//4.处理空格和星的逻辑关系
//5.代码实施
//---------------半个金字塔代码---------------------

/* 

$n=10;
for($i=1;$i<=$n;$i++){
                          //【2】
    for($j=1;$j<=($i-1)*2+1;$j++){    //打印星
     echo "*";
 } echo "<br/>";
}

*/
//在半个金字塔的基础上,考虑全金字塔的实现,将上面的代码继续改进,
//复制上面的化工厂到下面------
//代码实施分析:
//1.在打印星 之前要先打印空格 2.【2】位置加入控制空格的代码3.代码实施
//----------------整个金字塔代码------------------
/*    $n=3;
 
for($i=1;$i<=$n;$i++){ 
 //打印空格
  for($k=1;$k<=$n-$i;$k++){
         echo"&nbsp;&nbsp;";
  //打印星*
     }for($j=1;$j<=($i-1)*2+1;$j++){
  



           echo "*";
     }         
  //打印完星后输出一个换行        
      echo "<br/>";
}           */
//-------------以上代码实现整个金字塔------------------
//在整个金字塔的基础的上打印镂空金字塔,先复制整金字塔的代码到下面
//打印镂空金字塔代码分析 :
//1.正常打印第一层 和 最后一层 的星
//2.除第一层 和 最后一层外 打印每一层的第一个星 和 最后一个星,其它位置打印空格
//代码 插入 到下面代码【3】的位置,即是在输出*之前的上一层



$n=10;
for($i=1;$i<=$n;$i++){ 
 //打印空格
  for($k=1;$k<=$n-$i;$k++){
         echo"&nbsp;&nbsp;";
   }
   //打印星*
  for($j=1;$j<=($i-1)*2+1;$j++){
   //第一层 最后一层正常打印星
   if($i==1||$i==$n){
          echo "*";
   }else{
      //除第1层最后1层外,其它层第一个星 最后一个星照常给星
    if($j==1||$j==2*$i-1){
       echo "*";
      }else{
          echo "&nbsp;&nbsp;";
     
    }
  
     }
                
   
         }         
                        //打印完星后输出一个换行        
      echo "<br/>";


   }
?>

0 0