php输出金字塔的2种实现方法

下面是“php输出金字塔的2种实现方法”的完整攻略。

下面是“php输出金字塔的2种实现方法”的完整攻略。

1. 方法一:使用for循环实现

利用for循环打印出金字塔的步骤

  1. 定义一个变量 $n,代表金字塔的层数;
  2. 利用 for 循环使程序输出金字塔结构;
  3. for循环中需要再套一个循环,控制每一行中*号和空格的数量;
  4. 利用 echo 打印出金字塔的每一行;
  5. 完成循环后输出整个金字塔。

代码实现

以下是 PHP 代码的示例:

$n = 5;

for ($i = 1; $i <= $n; $i++) {
    for ($j = 1; $j <= $n - $i; $j++) {
        echo " ";
    }
    for ($k = 1; $k <= $i; $k++) {
        echo "* ";
    }
    echo "<br>";
}

运行结果

执行代码后,会输出如下图所示的金字塔:

        *
       * *
      * * *
     * * * *
    * * * * *

2. 方法二:使用递归实现

利用递归函数打印出金字塔的步骤

  1. 定义递归函数,函数中加入了每一行的判断条件,从而实现每一行的输出;
  2. 将金字塔的层数、当前层数、当前行输出的星号数量和空格数量作为参数传递给递归函数;
  3. 当前层数等于金字塔层数是退出递归函数;
  4. 递归函数中通过下一次输出比当前多一个星号和比当前多一个空格来实现金字塔结构的打印;
  5. 完成递归后输出整个金字塔。

代码实现

以下是 PHP 代码的示例:

function print_star($n, $i, $k, $j) {
    if ($i > $n) {
        return;
    }

    if ($j >= $n - $i) {
        for ($m = 1; $m <= $k; $m++) {
            echo "*";
        }
        echo "<br>";

        print_star($n, $i + 1, $k + 1, 0);
    } else {
        echo "&nbsp;&nbsp;";

        print_star($n, $i, $k, $j + 1);
    }
}

$n = 5;

print_star($n, 1, 1, 0);

运行结果

执行代码后,会输出如下图所示的金字塔:

        *
       ***
      *****
     *******
    *********

希望这个攻略能够帮助到你!

本文标题为:php输出金字塔的2种实现方法

基础教程推荐