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 "\n";   //每层输出完后换行
}

如果出现三角形斜曲了,这个是字体的原因导致的。
解决方案:可以每层多输出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 "\n";
}

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

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

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

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

posted @   米饭!大米饭  阅读(3699)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示