for循环实现正等腰三角形

等腰三角形

/*
		  层数i	  星星数   空格数     循环层i
        *           1	    1       8   
      * * *         2	    3       6
    * * * * *       3	    5       4
  * * * * * * *     4       7	    2
* * * * * * * * *   5       9       0

星星数: 2*i-1  
空格数: 2*n+1-2*i-1 = 2(n-i)

*/
$n = 5;
for ($i=1; $i<=$n; $i++) {  //确定层数
	for ($j=1; $j<=$n-$i; $j++) {    //每层输出空格数,因为左右都有空格,所以左右两边都是(n-i)即可
		echo "  "; //我这里有两个空格
	}
	for ($j=1; $j<=2*$i-1; $j++) {   //每层的星星数
		echo "* ";
	}
	echo "
";   //每层输出完后换行
}

如果出现三角形斜曲了,这个是字体的原因导致的。
解决方案:可以每层多输出1个空格,星星后面也加一个空格。

空心等腰三角形

/*
        *                空格
      *   *               6
    *       *     	  4
  *           *   	  2
* * * * * * * * *         0

*/
for ($i=1; $i<=$n; $i++) {
	
	for ($j=1; $j<=$n-$i; $j++) {        //输出左侧空格
		
		echo "  ";
	}
	for ($j=1; $j<=2*$i-1; $j++) {       //输出星星
		
		if($j==1 || $j==2*$i-1 || $i==$n) {  //每行第一个和最后一个输出星星;最后一行也全部输出星星
			
			echo "* ";
			
		}else {
	
			echo "  ";   //中间的输空格
			
		}
		
	}
	
	echo "
";
}

页面显示效果可能是这样的:

实际效果看着好像不是那么理想,但其实也是字体原因

可以把输出的结果复制到编辑器里看 就会发现得到下方的等腰三角形:

原文链接:https://www.cnblogs.com/xinxinmifan/p/php_made_triangle.html

原文地址:https://www.cnblogs.com/xinxinmifan/p/php_made_triangle.html