PHP每日一练:金字塔

PHP每日一练,金字塔:首先,从简单的着手,打印出金字塔的右半部分,代码如下

<?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"&nbsp;";
    }    //内层控制每层*的个数
    for($j=1;$j<=2*$i-1;$j++){        echo"*";
    }    echo"<br/>";
}?>

注:把上面的代码复制到php文件中,会出现不知名的错误,应该是格式问题,但是代码是正确的。

然后是空心金字塔,代码如下:

<?php
$n=5;
for($i=1;$i<=$n;$i++){
    for($k=1;$k<=$n-$i;$k++){
        echo"&nbsp;";
    }
    //内层控制每层*的个数
    for($j=1;$j<=$i*2-1;$j++){
        //第一层和最后一层*不变
        if($i==1||$i==$n){
            echo"*";
        }
        //其他层第一个和最后一个位置打印*,其他位置打印空格
        else{
            if($j==1||$j==$i*2-1){
                echo"*";
            }else{
                echo"&nbsp;";
            }
        }
    }
    echo"<br/>";
}
echo"<hr/>"
?>

 

接下来,是菱形

<?php
$n=5;
for($i=1;$i<=$n;$i++){
    for($k=1;$k<=$n-$i;$k++){
        echo"&nbsp;";
    }
    //内层控制每层*的个数
    for($j=1;$j<=$i*2-1;$j++){
        //第一层和最后一层*不变
        if($i==1){
            echo"*";
        }
        //其他层第一个和最后一个位置打印*,其他位置打印空格
        else{
            if($j==1||$j==$i*2-1){
                echo"*";
            }else{
                echo"&nbsp;";
            }
        }
    }
    echo"<br/>";
}


for($i=$n;$i>=1;$i--){
    for($k=1;$k<=$n-$i;$k++){
        echo"&nbsp;";
    }
    //内层控制每层*的个数
    for($j=1;$j<=$i*2-1;$j++){
        //第一层和最后一层*不变
        if($i==1){
            echo"*";
        }
        //其他层第一个和最后一个位置打印*,其他位置打印空格
        else{
            if($j==1||$j==$i*2-1){
                echo"*";
            }else{
                echo"&nbsp;";
            }
        }
    }
    echo"<br/>";
}
?>

注:上述代码在不同的浏览器可能显示有差异

由于是初学php,如果上述代码有错误之处,还请各位看客指正,谢谢!

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享