首先,从简单的着手,打印出金字塔的右半部分,代码如下
<?php $n=5; //金字塔行数 //外层的for循环控制层数 for($i=1;$i<=$n;$i++){ //内层的for循环控制每层*的个数 for($j=1;$j<=$i;$j++){ echo"*"; } echo"<br/>"; //每一层打印完换行 } ?>
然后打印出完整的金字塔,完整的金字塔,在上面的基础下只需要做小小的修改,
<?php $n=5; //金字塔行数 for($i=1;$i<=$n;$i++){ //在打印*之前,先打印空格 for($k=1;$k<=$n-$i;$k++){ echo" "; } //内层控制每层*的个数 for($j=1;$j<=2*$i-1;$j++){ echo"*"; } echo"<br/>"; } ?>
注:把上面的代码复制到php文件中,会出现不知名的错误,应该是格式问题,但是代码是正确的。
然后是空心金字塔,代码如下:
1 <?php 2 $n=5; 3 for($i=1;$i<=$n;$i++){ 4 for($k=1;$k<=$n-$i;$k++){ 5 echo" "; 6 } 7 //内层控制每层*的个数 8 for($j=1;$j<=$i*2-1;$j++){ 9 //第一层和最后一层*不变 10 if($i==1||$i==$n){ 11 echo"*"; 12 } 13 //其他层第一个和最后一个位置打印*,其他位置打印空格 14 else{ 15 if($j==1||$j==$i*2-1){ 16 echo"*"; 17 }else{ 18 echo" "; 19 } 20 } 21 } 22 echo"<br/>"; 23 } 24 echo"<hr/>" 25 ?>
接下来,是菱形
<?php $n=5; for($i=1;$i<=$n;$i++){ for($k=1;$k<=$n-$i;$k++){ echo" "; } //内层控制每层*的个数 for($j=1;$j<=$i*2-1;$j++){ //第一层和最后一层*不变 if($i==1){ echo"*"; } //其他层第一个和最后一个位置打印*,其他位置打印空格 else{ if($j==1||$j==$i*2-1){ echo"*"; }else{ echo" "; } } } echo"<br/>"; } for($i=$n;$i>=1;$i--){ for($k=1;$k<=$n-$i;$k++){ echo" "; } //内层控制每层*的个数 for($j=1;$j<=$i*2-1;$j++){ //第一层和最后一层*不变 if($i==1){ echo"*"; } //其他层第一个和最后一个位置打印*,其他位置打印空格 else{ if($j==1||$j==$i*2-1){ echo"*"; }else{ echo" "; } } } echo"<br/>"; } ?>
注:上述代码在不同的浏览器可能显示有差异
由于是初学php,如果上述代码有错误之处,还请各位看客指正,谢谢!
时间: 2024-10-05 20:30:34