怎么用php输出杨辉三角

worktile 其他 142

回复

共3条回复 我来回复
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    使用下面的PHP代码可以输出杨辉三角:

    “`php

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    要使用PHP输出杨辉三角,可以通过两种方法来实现:递归和循环。

    方法一:递归

    递归是一种自我调用的方法,可以通过递归函数来生成杨辉三角。

    “`php
    function generateTriangle($rows) {
    // 基线条件:如果只有一行,则直接返回1
    if ($rows == 1) {
    return [[1]];
    }

    // 递归调用生成上一行的杨辉三角
    $triangle = generateTriangle($rows-1);

    // 获取上一行的最后一行
    $prevRow = $triangle[$rows-2];

    // 生成当前行
    $currentRow = [];
    $currentRow[] = 1; // 第一个元素是1

    // 根据上一行计算当前行的元素
    for ($i = 1; $i < $rows - 1; $i++) { $currentRow[] = $prevRow[$i-1] + $prevRow[$i]; } $currentRow[] = 1; // 最后一个元素是1 // 将当前行添加到杨辉三角中 $triangle[] = $currentRow; return $triangle;}function printTriangle($triangle) { $rows = count($triangle); // 遍历输出杨辉三角 for ($i = 0; $i < $rows; $i++) { $row = $triangle[$i]; $spaces = str_repeat(" ", $rows - $i - 1); // 打印行前面的空格 echo $spaces; echo implode(" ", $row); echo "\n"; }}// 测试代码$rows = 5;$triangle = generateTriangle($rows);printTriangle($triangle);```输出结果:``` 1 1 1 1 2 1 1 3 3 11 4 6 4 1```方法二:循环另一种方法是使用循环来生成杨辉三角。```phpfunction generateTriangle($rows) { $triangle = []; // 生成每一行的杨辉三角 for ($i = 0; $i < $rows; $i++) { $row = []; // 第一个元素是1 $row[] = 1; // 根据上一行计算当前行的元素 for ($j = 1; $j < $i; $j++) { $prevRow = $triangle[$i-1]; $row[] = $prevRow[$j-1] + $prevRow[$j]; } // 最后一个元素是1 if ($i > 0) {
    $row[] = 1;
    }

    // 将当前行添加到杨辉三角中
    $triangle[] = $row;
    }

    return $triangle;
    }

    function printTriangle($triangle) {
    $rows = count($triangle);

    // 计算最大数值的位数,用于对齐输出
    $maxValue = $triangle[$rows-1][floor($rows/2)];
    $maxDigits = strlen(strval($maxValue));

    // 遍历输出杨辉三角
    for ($i = 0; $i < $rows; $i++) { $row = $triangle[$i]; $spaces = str_repeat(" ", ($rows - $i - 1) * ($maxDigits + 1) / 2); // 打印行前面的空格 echo $spaces; foreach ($row as $num) { echo str_pad($num, $maxDigits, " ", STR_PAD_BOTH); echo " "; } echo "\n"; }}// 测试代码$rows = 5;$triangle = generateTriangle($rows);printTriangle($triangle);```输出结果:``` 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1```以上代码提供了两种方法来使用PHP输出杨辉三角,分别使用了递归和循环。根据实际需求选择合适的方法来生成和打印杨辉三角。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    使用PHP输出杨辉三角可以利用循环和二维数组来实现。下面是一个示例代码,通过输入行数来输出对应的杨辉三角形:

    “`php

    “`

    代码解析:

    1. `generatePascalTriangle` 函数负责生成杨辉三角的二维数组,使用两个嵌套循环来计算每个格子的数字;
    2. `printPascalTriangle` 函数负责打印输出杨辉三角,使用两个嵌套循环来遍历并输出每个数字;
    3. 在主程序中,定义了需要生成的行数,并调用 `generatePascalTriangle` 生成杨辉三角的二维数组,然后调用 `printPascalTriangle` 输出杨辉三角。

    运行上述代码,将会输出一个包含5行的杨辉三角形:

    “`
    1
    1 1
    1 2 1
    1 3 3 1
    1 4 6 4 1
    “`

    根据需要,你可以修改 `$rows` 变量来生成不同行数的杨辉三角形。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部