/*
层数i 星星数 空格数 循环层i
* 1 1 6
* * * 2 3 4
* * * * * 3 5 2
* * * * * * * 4 7 0
星星数: 2*i-1
空格数: (n-i)*2
*/
$n = 4;
for ($i=1; $i<=$n; $i++) { //确定层数
for ($j=1; $j<=$n-$i; $j++) { //每层输出空格数
echo " ";
}
for ($j=1; $j<=2*$i-1; $j++) { //每层的星星数
echo "*";
}
echo "\n"; //每层输出完后换行
}
/* 空格
* 6
* * 4
* * 2
* * * * * * * 0
*/
for ($i=1; $i<=$n; $i++) {
for ($j=1; $j<=2*($n-$i); $j++) {
echo " ";
}
for ($j=1; $j<=2*$i-1; $j++) {
if($i==1 || $i==$n) { //第一行和最后一行,全部输出*
echo "-";
}else {
if($j>1 && $j<2*$i-1) { //中间的输空格
echo " ";
} else {
echo "-"; //两边的输*
}
}
}
echo "\n";
}
实际效果好像不是那么理想,测试java和python也是一样的不理想:
原文:https://www.cnblogs.com/xinxinmifan/p/php_made_triangle.html