天天看點

for循環實作正等腰三角形

等腰三角形

/*
		  層數i	  星星數   空格數     循環層i
        *           1	    1       8   
      * * *         2	    3       6
    * * * * *       3	    5       4
  * * * * * * *     4       7	    2
* * * * * * * * *   5       9       0

星星數: 2*i-1  
空格數: 2*n+1-2*i-1 = 2(n-i)

*/
$n = 5;
for ($i=1; $i<=$n; $i++) {  //确定層數
	for ($j=1; $j<=$n-$i; $j++) {    //每層輸出空格數,因為左右都有空格,是以左右兩邊都是(n-i)即可
		echo "  "; //我這裡有兩個空格
	}
	for ($j=1; $j<=2*$i-1; $j++) {   //每層的星星數
		echo "* ";
	}
	echo "
";   //每層輸出完後換行
}

如果出現三角形斜曲了,這個是字型的原因導緻的。
解決方案:可以每層多輸出1個空格,星星後面也加一個空格。

           

空心等腰三角形

/*
        *                空格
      *   *               6
    *       *     	  4
  *           *   	  2
* * * * * * * * *         0

*/
for ($i=1; $i<=$n; $i++) {
	
	for ($j=1; $j<=$n-$i; $j++) {        //輸出左側空格
		
		echo "  ";
	}
	for ($j=1; $j<=2*$i-1; $j++) {       //輸出星星
		
		if($j==1 || $j==2*$i-1 || $i==$n) {  //每行第一個和最後一個輸出星星;最後一行也全部輸出星星
			
			echo "* ";
			
		}else {
	
			echo "  ";   //中間的輸空格
			
		}
		
	}
	
	echo "
";
}

           

頁面顯示效果可能是這樣的:

實際效果看着好像不是那麼理想,但其實也是字型原因

可以把輸出的結果複制到編輯器裡看 就會發現得到下方的等腰三角形:

原文連結:https://www.cnblogs.com/xinxinmifan/p/php_made_triangle.html