PHP怎样打印半边金字塔、实心金字塔、空心金字塔、空心菱形

不同类型金子塔如下,接下来将为大家讲解不同类型的PHP代码原理



代码如下:

/**
 * Created by PhpStorm.
 * User: Direct
 * Date: 2017/9/21
 * Time: 9:27
 */

//第一个金字塔:同九九乘法表类似
for($i=1;$i<=5;$i++) { //$i代表横排数
    for ($j = 1; $j<=$i; $j++) {  //$j代表每排显示的*数
        echo '*';
    }
    echo "
"
;//每次循环过后需换行 } //原理:观察图形发现规律,一共有5横排,每排随着排数的增加一次*就多加个, //每次增加的数总和都是跟比排数小或者相同。 //第二个金字塔 $a=6;//星号要显示的排数 for($i=1;$i<=$a;$i++) {//循环的次数 //打印左边空白部分,随着层数的增加而减少 for ($k = 0; $k < $a - $i; $k++) {//第一排左边空白部分跟(排数-1)相同 echo " "; } //打印每排的星号* for ($j = 1; $j <= $i * 2 - 1; $j++) { echo "*"; } echo "
"
;//每排完成循环后自动换行 } //原理如下:观察图像,以以上为例,左边空白部分是按照排数的增加而减少的,从中可发现空白部分与排数的关系(空白部分=排数-1); //星号同排数之间的关系:星号数=排数+(排数-1) //第三个金字塔 $a=6;//星号要显示的排数 for($i=1;$i<=$a;$i++){//循环的次数 //打印左边空白部分,随着层数的增加而减少 for($k=0;$k<$a-$i;$k++){//第一排左边空白部分跟(排数-1)相同 echo " "; } //打印每排的星号* for ($j=1;$j<=$i*2-1;$j++){ //第一排和最后一排星号*不变 if($i==1||$i==$a){ echo "*"; }else { //每一排第一个都有星号 if ($j == 1|| $j == $i * 2 - 1) { echo "*"; } else { echo " "; } } } echo "
"
;//每排完成循环后自动换行 } //打印空心菱形 $a=6;//星号要显示的排数 for($i=1;$i<=$a;$i++){//循环的次数 //打印左边空白部分,随着层数的增加而减少 for($k=0;$k<$a-$i;$k++){//第一排左边空白部分跟(排数-1)相同 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 "
"
;//每排完成循环后自动换行 } for($i=$a;$i>=0;$i--){//循环的次数 //打印左边空白部分,随着层数的增加而减少 for($k=0;$k<=$a-$i;$k++){//第一排左边空白部分跟(排数-1)相同 echo " "; } //打印每排的星号* for ($j=1;$j<=$i*2-3;$j++){ //每一排第一个都有星号 if ($j == 1|| $j == $i * 2 - 3) { echo "*"; } else { echo " "; } } echo "
"
;//每排完成循环后自动换行 }

你可能感兴趣的:(PHP)