/*
*
*幫朋友做題,寫了一個這個空心金字塔的代碼。希望和大家交流一下,提出*寶貴建議.
*
*/
//第一種實現方法
$n=20;//定義總函數
for($i=1;$i<=$n;$i++)//行數循環
{
for($k=1;$k<=$n-$i;$k++)//循環打印出每行前面的空格
{
echo " ";
}
//判斷並打印出第一行與最后一行的'*'
if(($i==1)||($i==$n))
{
for($j=1;$j<=2*$i-1;$j++)
{
echo '*';
}
echo'
';
}else//循環打印出其他行的'*'與空格
{
echo '*';
for($k=1;$k<=2*$i-3;$k++)
{
echo ' ';
}
echo '*';
echo '';
}
}
//第二種實現空心金字塔(個人感覺代碼繁瑣,唉。)
$n=20;//定義總函數
for($i=1;$i<=$n;$i++)//行數循環
{
for($k=1;$k<=$n-$i;$k++)//循環打印出每行前面的空格
{
echo ' ';
}
//循環打印出每一行前面空格后的'*'
if($i==1)//第一行
{
echo '*';
echo '';
}else//其它行
{echo '*';}
if(($i>=2)&&($i<=$n-1))
{ //循環打印出第二行到第n-1行的樣式
for($j=1;$j<=2*$i-3;$j++)
{
echo ' ';
}
echo '*';
echo '';
}else if($i==$n)
{//循環打印出最后一行的樣式
for($m=1;$m<=2*$i-2;$m++)//2*$i-2是因為前面多打印一個'*'
{
echo "*";
}
echo '';
}
}
//第三種方法比較簡單
$n = 10; for ($i = 1; $i <= $n; $i++) { for ($k = 1; $k <= $n - $i; $k++) { echo " "; } for ($j = 1; $j < 2 * $i - 1; $j++) { if (($i == 1) || ($i == $n)) { echo '*'; } else { if (($m == 1) || ($m == 2 * $i - 1)) { echo '*'; } else { echo " "; } } } echo ''; }?>