PHP打印金字塔---自己的实践练习题目

PHP代码打印镂空金字塔 代码 分析的过程在后面(64位系统最好打印2个 才能显示正常,否则底边成了旗杆

<?php

              $n=10;          

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

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

                   echo "&nbsp;&nbsp;";          

                    }     

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

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

                             echo "*";                 

                              }else{        

                             if($j==1||$j==2*$i-1){            

                                       echo "*";               

                                          }else{                

                                   echo "&nbsp;&nbsp;";            

                              }         

                          }        

                      }     

                            echo "<br/>";

                  }  

              ?>

//打金子字塔练习

//思路:打印如下的金字塔

//      *                    *                              第1层 1星   2空格             //层数和星个数$j的关系:($i-1)*2+1=$j  

//      **   ---->      ***                            第2层 3星   1空格              //层数和空格数$k的关系:$n-$i=$k  

//      ***             *****                          第3层 5星   0空格  

                                                                          

                                                                                                   

//(半个金字塔--->1个金字塔转变)

 //1.要有两个变量 一个控制行,一个控制列

//2.空格 和 *打印的顺序的问题(哪个优先)

//3.要打整个金字塔,先从何处着手,能不能

//先打半个金字塔,再从半个金字塔着手打印整个金字塔

//4.处理空格和星的逻辑关系

//5.代码实施

 //---------------半个金字塔代码---------------------

  <?php

        $n=10;

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

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

                 //打印星     

                      echo "*";  }

             echo "<br/>"; }

?>

 //在半个金字塔的基础上,考虑全金字塔的实现,将上面的代码继续改进,

 //代码实施分析:

//1.在打印星 之前要先打印空格

//2.加入控制空格的代码

//3.代码实施

 

整个金字塔代码

<?php   

   $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.除第一层 和 最后一层外 打印每一层的第一个星 和 最后一个星,其它位置打印空格

打印镂空金字塔

 

 

 

<?php $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/>";

 

                                     } ?>

 

posted @ 2017-03-20 21:03  iwango  阅读(2305)  评论(0编辑  收藏  举报