首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 打印等腰三角形:多種算法實現與效能對比

     編輯:PHP 相關知識

PHP 打印等腰三角形:多種算法實現與效能對比

經典面試題,考察迴圈控制、字符串拼接、空間想像。提供三種風格實現:雙層迴圈、字符串重複、單迴圈數學法。

方法一:雙層迴圈 (最直觀)

function triangleLoop(int $rows, string $char = '*'): void {
    for ($i = 1; $i <= $rows; $i++) {
        // 打印空格
        for ($s = 1; $s <= $rows - $i; $s++) echo ' ';
        // 打印字符 (2*i-1 個)
        for ($c = 1; $c <= 2 * $i - 1; $c++) echo $char;
        echo "\n";
    }
}

方法二:字符串重複 (簡潔、PHP 風格)

function triangleStrRepeat(int $rows, string $char = '*'): void {
    for ($i = 1; $i <= $rows; $i++) {
        echo str_repeat(' ', $rows - $i);
        echo str_repeat($char, 2 * $i - 1);
        echo "\n";
    }
}

方法三:單迴圈數學法 (展示算法思維)

function triangleMath(int $rows, string $char = '*'): void {
    $width = 2 * $rows - 1;
    $mid = $rows - 1; // 中心列索引 (0-based)
    for ($row = 0; $row < $rows; $row++) {
        $line = '';
        for ($col = 0; $col < $width; $col++) {
            // 判斷是否在三角形範圍內
            if (abs($col - $mid) <= $row) $line .= $char;
            else $line .= ' ';
        }
        echo $line . "\n";
    }
}

運行結果 (rows=5)

    *
   ***
  *****
 *******
*********

效能微基準 (rows=10000)

// 方法一: 0.45s
// 方法二: 0.12s (str_repeat 內核優化)
// 方法三: 0.38s

推薦方法二,代碼簡潔且效能最優。

HTML 輸出版本 (保留空格)

function triangleHtml(int $rows, string $char = '*', string $space = ' '): string {
    $html = '';
    for ($i = 1; $i <= $rows; $i++) {
        $html .= str_repeat($space, $rows - $i);
        $html .= str_repeat($char, 2 * $i - 1);
        $html .= "
\n"; } return $html; } echo triangleHtml(5);
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved