怎么用php输出杨辉三角
-
使用下面的PHP代码可以输出杨辉三角:
“`php
2年前 -
要使用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年前 -
使用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年前