PHP-正三角形排列
<?
/*
正三角形排列,可依照指定的列數符合第一排一顆、第二排兩顆、第三排三顆依序排列下去。
本程式省略使用者輸入、傳送與接收,直接寫主程式碼。可以應用在其他不同的程式語言。
*/
//1.控制要顯示的列數
//2.輸出星星之前的空白個數
//3-1.判斷該列是輸出一顆星星還是輸出多顆星星
//3-2.若多顆星星,就必須輸出兩顆星之間的空白,並在迴圈判斷是否到結尾了
//3-3.若到結尾,因為不必再輸出星星,所以也不需要輸出空白
$row="5"; //指定要的總列數
$row-=1;//陣列中起始值從0開始(從0開始的話可以容易看出公式)
for($y=$row;$y>=0;$y–)//控制所有的列數,也就是用地檢的方式給他編號下去。如:43210列。將y遞減,是方便星星左邊空白顯示的判斷
{
for($x=0;$x<=$y-1;$x++)//星星左邊需要空白的個數。終止條件:當該列顆數小於等於指定的「列數-1」(這是我自己推出來的公式)
{
echo " "; //由以上判斷,利用迴圈在這列中輸出一或數個空白
}
if($y==$row)//如果正要顯示的列編號等於指定要的總列數
{
echo"●";//只顯示星星
}
else if($y<=$row-1 && $y>=0)//若該列編號等於總列數的下一列編號(如第4列) 且 該編號也大於等於0
{
for($a=0;$a<=$row-$y;$a++)//從0開始算起,並限制條件:總列數(如4)減去該列的編號值(如321列)
{
//顯示星星
echo"●";
$next=$a+1;//星星之後是否要有空白
if($next<=$row-$y) //每列最後一顆星星之後會有空白,但為了更完美,在此控制不需要輸出空白
{echo " ";}
}
}
echo"<br />";//段行
}
?>