例子,php打印杨辉三角。
<?php
/**
* 打印杨辉三角:
* 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
*
*/
function yang_hui_san_jiao($n)
{
$arr=array(1); //$arr记录上一行的元素
$return_html='<table>'; //定义一个变量,记录输出的html
//外循环控制行数
for($i=1;$i<=$n;$i++)
{
$return_html.='<tr>';
//内循环控制改行元素的个数
for($j=1;$j<=$i;$j++)
{
//改行的第一个 和 最后一个元素 始终是1
if($j==1 || $j==$i)
{
$new_arr[$j]=1; // 定义一个新数组$new_arr,记录当前行的元素,
$return_html.='<td>1</td>';
}
else
{
//否则,该元素等于上一行的 相同角标 和 角标-1 两个元素的和
$new_number=$arr[$j]+$arr[$j-1];
$new_arr[$j]=$new_number; //将元素赋给新数组
$return_html.='<td>'.$new_number.'</td>';
}
}
$arr=$new_arr; //把当前行的数组赋给$arr,开始新一轮的循环
$return_html.='</tr>';
}
$return_html.='</table>';
return $return_html;
}
//调用函数测试 杨辉三角
echo yang_hui_san_jiao(10);
?>