先确定金字塔的每行几个星号,在想想怎么给每行的前面添加空格,接着在非首尾行里添加空格。
function printgraph($n) {
//控制行数for ($i = 1; $i <= $n; $i++) {
//打印出前面的空格。 为什么在这里不能直接打入空格键,必须是 而在如echo 'a'.' ';里 可以直接打入空格键?
for ($k = 0; $k < $n-$i; $k++) {
echo ' ';
}
//打印每行的东西
for ($j = 1; $j <= $i*2-1; $j++) {
if ($i == 1 || $i == $n) { //判断是否是首位两行,是,全部打印,不是,则是中间行,则进入下面的else
echo '*';
}
else{ //进到这个else即表示是中间行,$j是负责打印每行上面的物件的,所以判断
if ($j == 1 || $j == $i*2-1) //$j是否是第一个或者是最后一个,是,则打印星号,不是,则打印空格。
{
echo '*';
}
else {
echo ' ';
}
}
}
//每行打印完进行换行
echo '<br/>';
}
}
printgraph(10);