php趣味編程 - php 打印楊輝三角

php趣味編程 - php 打印楊輝三角

wKiom1LOGYPSdoT_AAAbMpEaA_o517.jpg

<?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
然後輸出二維數組
*/
?>
<?php
    $arr = array();//用來存楊輝三角的數
    $i = 10;//要輸出的行數
       
    for($n=0;$n<$i;$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<$i;$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<sizeof($arr);$nn++)
    {
        for($mm=0;$mm<sizeof($arr[$nn]);$mm++)
        {
            echo $arr[$nn][$mm].'&nbsp;&nbsp;';//輸出二維數組
        }
        echo '<br />';//換行爲了美觀
    }
       
?>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章