php打印杨辉三角

原创
2013/01/24 21:46
阅读数 434

今天闲来无事, 用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
 *
 * @author		WuJunwei
 * @Email       1399952803@qq.com
 * @link		http://www.wujunwei.net
 *
 */
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);

该篇文章同步发表在我的个人网站, 欢迎访问:http://www.wujunwei.net/archives/477

展开阅读全文
打赏
0
1 收藏
分享
加载中
更多评论
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部