php趣味编程 - php 打印杨辉三角
/*
打印杨辉三角
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 1
$i 来代表行数
$j 来代表一行第几个数
数组$arr 来存 杨辉三角的数
$arr[$i][] =来代表一行的数
我们先来看下杨辉三角的含义:
从第三行开始的数等于它的上一行的数+它上一行左边的数即:
$arr[$i][$j] = $arr[$i-1][$j] + $arr[$i-1][$j-1]
然后每行的第一个数跟最后一个数都是1即
$arr[$i][0] = 1; $arr[$i][$i] = 1
然后输出二维数组
*/
?>
$arr = array();//用来存杨辉三角的数
$i = 10;//要输出的行数
for($n=0;$n
{
$arr[$n][0] = 1; //每行的第一数是1
$arr[$n][$n] = 1; //每行的最后一个是1
}
//每行的第2个数开始等与上一行的数+上一行左边的数
//$arr[0][1] = $arr[0-1][1] + $arr[0-1][1-1];
//$arr[1][1] = $arr[1-1][1] + $arr[1-1][1-1];
//$arr[2][1] = $arr[2-1][1] + $arr[2-1][2-1];
for($m=1;$m
{
/*
因为前面已经定义了第一个元素。接下来从第2个元素开始
$arr[$m][1] = $arr[$m-1][1]+$arr[$m-1][1-1]输出每行的第2个元素
$arr[$m][2] = $arr[$m-1][2]+$arr[$m-1][2-1]输出每行的第3个元素
$arr[$m][3] = $arr[$m-1][3]+$arr[$m-1][3-1]输出每行的第3个元素
一直到$arr[$m][$n] $n = $m 每行的第n个数
*/
for($n=1;$n<=$m;$n++)
{
$arr[$m][$n] = $arr[$m-1][$n] + $arr[$m-1][$n-1];//
}
}
/*
已经把数存到二维数组$arr里面、那么就输出二维数组
*/
//print_r($arr);
for($nn=0;$nn
{
for($mm=0;$mm
{
echo $arr[$nn][$mm].' ';//输出二维数组
}
echo '
';//换行为了美观
}
?>