翻出几个月前学php的时候,自己写的 倒金字塔,楞是看了1个多钟才看明白。还郁闷当时怎么写出来的,原来是有规律的,现在又把代码精炼了下,记下来。代码这东西,真就是怕忘-_-!!!
代码:
<?php
function a($n){$p = ($n+1)/2; //计算最中间的行号
for($i=1;$i<=$n;$i++){
if($i<$p){ //遍历上半部分
$m = 2*$i-1; //上半部分:每行*号个数
$sp = ($n-$m)/2; //空格数的一半
$i1 = $m; //星号数
for($j=1;$j<=$sp;$j++){echo " ";} //空格
for($j=1;$j<=$i1;$j++){echo "*";} //打印*号
for($j=1;$j<=$sp;$j++){echo " ";} //空格
echo "<br />";
}else{
if($i==$p){ //遍历中间行:中间的个数刚好等于行数
for($j=1;$j<=$n;$j++){echo "*";} //打印*号
echo "<br />";
}
else{ //遍历下半部分
$i2 = 2*($n+1-$i)-1; //*号数 (有规律的-对称)
$sp = ($n -$i2)/2; //空格数的一半
for($j=1;$j<=$sp;$j++){echo " ";} //空格
for($j=1;$j<=$i2;$j++){echo "*";} //打印*号
for($j=1;$j<=$sp;$j++){echo " ";} //空格
echo "<br />";
}
}
}
}
a(9);
?>