1、杨辉三角的解决思路

PHP代码杨辉三角

    /**
     * 使用div模式输出杨辉三角(这个并不是等腰三角形,而是要靠css样式控制。
     * @param $line int 总行数
     */
function Triangle($line) {
        echo <<<'style'
        
style;
        echo '
'; for ($i = 1; $i <= $line; $i++) { echo '

'; for ($j = 1; $j <= $i; $j++) { if ($j == 1 || $j == $i) { echo ''; echo $data[$i][$j] = 1; echo ''; } else { echo ''; echo $data[$i][$j] = $data[$i - 1][$j] + $data[$i - 1][$j - 1]; echo ''; } } echo '

'
; } } /** * 使用table的方式输出杨辉三角(打印出等腰三角形) * @param $line int 总行数 */ function secondTriangle($line) { title("这是一个{$line}行的杨辉三角"); echo <<<'style' style; echo ''; for ($i = 1; $i <= $line; $i++) { echo''; //补齐前导空白单元格for ($n = 1; $n <= $line - $i; $n++) { echo''; } //只控制输出for ($j = 1; $j <= 2 * $i - 1; $j++) { if ($j == 1 || $j == 2 * $i - 1) { $arr[$i][$j] = 1; echo""; } elseif ($j % 2 === 0) { $arr[$i][$j] = 0; echo""; } else { //往上找单元格$arr[$i][$j] = ($arr[$i - 1][$j - 2]) + ($arr[$i - 1][$j]); echo""; } } //补齐后导单元格for ($n = 1; $n <= $line - $i; $n++) { echo''; } echo''; } echo'
* 1 {$arr[$i][$j]} *
'
; }

调用代码:
Triangle(10);
secondTriangle(10);
最后的预览结果如下
1、杨辉三角的解决思路_第1张图片

C#代码打印杨辉三角

代码同php无二,只是因为是控制台,所以等腰样式不太好控制,但是原理同table版本的一样。

    static void yanghuisanjiao(int line)
    {   
         //定义一个用来存放数据的二维数组
         int[,] arr = new int[line+1, line*2];
         //控制行的输出
         for (int i = 1; i <= line; i++)
         {
                    //控制前导空格的输出 如果是一个占位符占一个空格,那么就是line-i
                 for (int n = 0; n < line - i; n++)
                 {
                        Console.Write(" ");
                 }
                 for (int j = 1; j <= 2*i-1; j++)
                 {
                    if (j == 1 || j == 2*i-1)
                    {
                        arr[i, j] = 1;
                        Console.Write(arr[i, j].ToString());
                    }
                    else if (j % 2 == 0)
                    {
                        arr[i, j] = 0;
                        Console.Write(' ');
                    }
                    else
                    {
                        arr[i, j] = arr[i - 1, j-2] + arr[i - 1, j];
                        Console.Write(arr[i,j]);//Console.Write(arr[i, j].ToString());
                    }
               }
             Console.WriteLine();
        }
    }

预览效果如下
1、杨辉三角的解决思路_第2张图片

你可能感兴趣的:(PHP)