继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

php趣味编程 - php 打印杨辉三角

料青山看我应如是
关注TA
已关注
手记 201
粉丝 97
获赞 353

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 />';//换行为了美观

    }

        ?>

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP

热门评论

大哥,谢谢你,虽然我真没看懂,但是思想我掌握了

查看全部评论