让我们来讲解一下如何用PHP编写杨辉三角的实例代码吧。
背景介绍
杨辉三角又叫帕斯卡三角,它是由中国宋朝数学家杨辉在13世纪发现的。杨辉三角是一个数列,由上往下逐渐增加,且每一行的数字都是上一行相邻两数之和。杨辉三角可以产生很多神奇的数学现象,比如质数规律等等。
分析与代码实现
在这个实例中,我们将用PHP语言编写一个杨辉三角,输出10行数字的杨辉三角。
我们可以通过两种方式来实现这个目标:
方式一:使用循环来创建杨辉三角
首先,我们需要定义一个二维数组,用于存储每行的数字。我们可以使用大循环来遍历每一行,内嵌小循环来遍历每一行的数字,然后将它们存到数组中。最后,我们使用另一个循环来输出杨辉三角的每一行数字。
下面是一个实现方式:
<?php
$rows = 10; // 定义行数
$triangle = array();
// 创建杨辉三角
for($i = 0; $i < $rows; $i++) {
$triangle[$i] = array();
for($j = 0; $j <= $i; $j++) {
if($j == 0 || $j == $i) {
$triangle[$i][$j] = 1;
}
else {
$triangle[$i][$j] = $triangle[$i-1][$j-1] + $triangle[$i-1][$j];
}
}
}
// 输出杨辉三角
for($i = 0; $i < $rows; $i++) {
for($j = 0; $j <= $i; $j++) {
echo $triangle[$i][$j] . " ";
}
echo "<br>";
}
?>
在上面的代码中,我们首先定义了 $rows 变量,表示杨辉三角的总行数。然后,我们定义了一个双重循环来遍历所有的数字,并将它们存储到一个二维数组 $triangle 中。在存储每一行数字的时候,我们需要判断是不是每一行的第一个或最后一个数字,如果是的话,直接将其赋为1,否则我们需要计算出它的值。在循环输出杨辉三角的时候,我们使用了与存储杨辉三角一样的逻辑,从二维数组中取出每一个数字,并输出到页面。
执行上面的代码,得到的输出结果如下:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
方式二:使用递归来创建杨辉三角
除了使用循环来创建杨辉三角之外,我们还可以使用递归来帮助我们完成这个目标。
下面是一个实现方式:
<?php
function get_triangle($row) {
$triangle = array();
if($row == 0) {
$triangle[0][0] = 1;
}
else {
$prev_triangle = get_triangle($row - 1);
for($i = 0; $i <= $row; $i++) {
if($i == 0 || $i == $row) {
$triangle[$row][$i] = 1;
}
else {
$triangle[$row][$i] = $prev_triangle[$row-1][$i-1] + $prev_triangle[$row-1][$i];
}
}
}
return $triangle;
}
$rows = 10;
$triangle = get_triangle($rows);
// 输出杨辉三角
for($i = 0; $i < $rows; $i++) {
for($j = 0; $j <= $i; $j++) {
echo $triangle[$i][$j] . " ";
}
echo "<br>";
}
?>
在上面的代码中,我们定义了一个函数 get_triangle,它接收一个 $row 参数,表示需要生成杨辉三角的行数。如果 $row 为0,证明已经到达了最上面一行,直接赋值为1。否则,我们使用递归的方式调用自己来计算上一行的杨辉三角,并在此基础上计算出当前一行的数字。最后,我们输出杨辉三角到页面上。
执行上面的代码,得到的输出结果如下:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
总结
在本实例中,我们学习了如何使用PHP语言编写杨辉三角的实例代码。我们知道,通过循环和递归两个方法我们都可以在PHP中实现杨辉三角。无论使用哪一种方式,都需要我们理解杨辉三角的规律,然后利用循环或递归的算法来计算它的每一个数字值。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP写杨辉三角实例代码 - Python技术站