首頁 後端開發 php教程 用PHP輸出對稱菱形的簡易辦法

用PHP輸出對稱菱形的簡易辦法

Jul 30, 2016 pm 01:29 PM
echo for line lines quot

例如輸出一個簡單的菱形或叫做星星塔,首先是最外層控制行號,然後是內層的循環,內層的循環有兩個第一個循環控制,然後第二個循環來控制星星的數量,控制空格的是總共有的行數減去目前的行數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教學有興趣的朋友有幫助。


本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

解決kernel_security_check_failure藍色畫面的17種方法 解決kernel_security_check_failure藍色畫面的17種方法 Feb 12, 2024 pm 08:51 PM

解決kernel_security_check_failure藍色畫面的17種方法

五個精選的Go語言開源項目,帶你探索科技世界 五個精選的Go語言開源項目,帶你探索科技世界 Jan 30, 2024 am 09:08 AM

五個精選的Go語言開源項目,帶你探索科技世界

Win10如何解除安裝Skype for Business?電腦上的skype怎麼徹底卸載方法 Win10如何解除安裝Skype for Business?電腦上的skype怎麼徹底卸載方法 Feb 13, 2024 pm 12:30 PM

Win10如何解除安裝Skype for Business?電腦上的skype怎麼徹底卸載方法

Go語言開發必備:5個熱門框架推薦 Go語言開發必備:5個熱門框架推薦 Mar 24, 2024 pm 01:15 PM

Go語言開發必備:5個熱門框架推薦

外包背鍋,雅虎 LINE 洩露 5.7 萬名員工信息 外包背鍋,雅虎 LINE 洩露 5.7 萬名員工信息 Feb 15, 2024 am 11:30 AM

外包背鍋,雅虎 LINE 洩露 5.7 萬名員工信息

使用Golang的Web框架Echo框架實現分散式任務調度 使用Golang的Web框架Echo框架實現分散式任務調度 Jun 24, 2023 am 11:49 AM

使用Golang的Web框架Echo框架實現分散式任務調度

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决

JavaScript怎麼用for求n的階乘 JavaScript怎麼用for求n的階乘 Dec 08, 2021 pm 06:04 PM

JavaScript怎麼用for求n的階乘

See all articles