例如輸出一個簡單的菱形或叫做星星塔,首先是最外層控制行號,然後是內層的循環,內層的循環有兩個第一個循環控制,然後第二個循環來控制星星的數量,控制空格的是總共有的行數減去目前的行數for($space=1; $space
下面的程式碼是最簡單的輸出菱形的一部分
//$line 表示行号 //$space = $lines-$line;//每行的前导空格 //$star = 2*$line - 1;//m每行的星星数量 //外层循环控制行号 for($line=1; $line<=$lines; ++$line) { //先输出前导空格,控制空格的数量 for($space=1; $space<=$lines-$line; ++$space) { echo '+'; } //再输出星星,控制星星的数量 for($star=1; $star<=2*$line-1; ++$star) { echo '*'; } //输出换行 echo "<br />"; }
涉及到對稱的圖形就大多涉及到數軸例如輸出入讀所示的零星 +用空格來代替
首先一般的方法就是先做一個++的循環輸出上半層,然後再做一個--的循環輸出下半層
比如是這樣
$lines=12; for ($line=1; $line <=$lines ; $line++) { for ($j=1; $j <= $lines - $line ; $j++) { echo "+"; } for ($i=0; $i < 2*$line-1; $i++) { if ($i == 0 || $i == 2*$line-2) { echo "*"; }else{ echo "+"; }; } echo "</br>"; } $lines=12; for ($line=$lines-1; $line >=1 ; $line--) { for ($j=1; $j <= $lines - $line ; $j++) { echo "+"; } for ($i=0; $i < 2*$line-1; $i++) { if ($i == 0 || $i == 2*$line-2 || $line == $lines) { echo "*"; }else{ echo "+"; }; } echo "</br>"; }然後還有就是比較巧的方法利用數軸
//123454354
2-101-10123
4(數軸)//4321 3 4(絕對值)想到達到1 2 3 4 5 4 3 2 1的效果先把-4
-3
-20
-1-3-20 34用絕對值函數轉換然後是432101
201都是等於同一個書 比如說這個 就都等於5對應的偽代碼for($i=-4; $i<=4; ++$i) {
echo $i, '+';
echo abs($i), '+';
echo 5-abs($i);
echo '<br>';
}
就都等於5對應的偽代碼
for($i=-($lines-1); $i<=$lines-1; ++$i) { //计算$line $line = $lines - abs($i); //先输出前导空格,控制空格的数量 for($space=1; $space<=$lines-$line; ++$space) { echo '+'; } //再输出星星,控制星星的数量 for($star=1; $star<=2*$line-1; ++$star) { //判断应该输出星星还是空格 if($star==1 || $star==2*$line-1) { echo '*'; } else { echo '+'; } } //输出换行 echo "<br />"; }按照這個思路的話,首先最外層的循環控制的是數軸,也就是說從負數到正數的走一遍for($i=-($lines-1); $i然後裡面的用總的行數減去上面數軸的絕對值$line = $lines - abs($i);然後下面的額代碼不變就行了rrreee
版權聲明:本文為博主原創文章,未經博主允許不得轉載。
以上就介紹了用PHP輸出對稱菱形的簡易辦法,包含了面向的內容,希望對PHP教學有興趣的朋友有幫助。