比如输出一个简单的菱形或者叫星星塔,首先是最外层控制行号,然后是内层的循环,内层的循环有两个第一个循环控制,然后第二个循环来控制星星的数量,控制空格的是总共有的行数减去当前的行数for($space=1; $space<=$lines-$line; ++$space) 然后是星星的循环是for($star=1; $star<=2*$line-1; ++$star)

下面的代码是最简单的输出菱形的一部分

//$line 表示行号
//$space = $lines-$line;//每行的前导空格
//$star = 2*$line - 1;//m每行的星星数量//外层循环控制行号
for($line=1; $line<=$lines; ++$line) {//先输出前导空格,控制空格的数量for($space=1; $space<=$lines-$line; ++$space) {echo '+';}//再输出星星,控制星星的数量for($star=1; $star<=2*$line-1; ++$star) {echo '*';}//输出换行echo "<br />";
}

涉及到对称的图形就大多涉及到数轴比如输出入读所示的零星  +用空格来代替

首先一般的方法就是先做一个++的循环输出上半层,然后再做一个--的循环输出下半层

比如是这样

$lines=12;
for ($line=1; $line <=$lines ; $line++) { for ($j=1; $j <= $lines - $line ; $j++) { echo "+";}for ($i=0; $i < 2*$line-1; $i++) { if ($i == 0 || $i == 2*$line-2) {echo "*";}else{echo "+";};}echo "</br>";
}
$lines=12;
for ($line=$lines-1; $line >=1 ; $line--) { for ($j=1; $j <= $lines - $line ; $j++) { echo "+";}for ($i=0; $i < 2*$line-1; $i++) { if ($i == 0 || $i == 2*$line-2 || $line == $lines) {echo "*";}else{echo "+";};}echo "</br>";
}

然后还有就是一种比较巧的方法 利用数轴

//1 2 3 4 54 3 2 1
//-4 -3 -2 -1 01 2 3 4(数轴)
//4 3 21 0 1 2 34(绝对值)

想到达到 1 2 3 4 5 4 3 2 1的效果

先把-4 -3 -2 -1 01 2 3 4用绝对值函数转换一下

然后就是4 3 2 1 01 2 3 4

对应的第一个相加的话就都是等于同一个书  比如说这个  就都等于5

相应的伪代码

for($i=-4; $i<=4; ++$i) {echo $i, '+';echo abs($i), '+';echo 5-abs($i);echo '<br>';
}

按照这个思路的话,首先最外层的循环控制的是数轴,也就是说从负数到正数的走一遍for($i=-($lines-1); $i<=$lines-1; ++$i)

然后里面的用总的行数减去上面数轴的绝对值$line = $lines - abs($i);

然后下面的额代码不变就行了

for($i=-($lines-1); $i<=$lines-1; ++$i) {//计算$line$line = $lines - abs($i);//先输出前导空格,控制空格的数量for($space=1; $space<=$lines-$line; ++$space) {echo '+';}//再输出星星,控制星星的数量for($star=1; $star<=2*$line-1; ++$star) {//判断应该输出星星还是空格if($star==1 || $star==2*$line-1) {echo '*';} else {echo '+';}}//输出换行echo "<br />";
}

用PHP输出对称菱形的简易办法相关推荐

  1. C语言简易程序设计————8、输出镂空菱形图案

    无意中发现了一个巨牛巨牛的人工智能教程,忍不住分享一下给大家.教程不仅是零基础,通俗易懂,小白也能学,而且非常风趣幽默,还时不时有内涵段子,像看小说一样,哈哈-我正在学习中,觉得太牛了,所以分享给大家 ...

  2. c语言:输出一个菱形图

    输出一个菱形图. 解:程序: #include<stdio.h> int main() { int i, j; char diamond[][5] = { {' ',' ','*'},{' ...

  3. C语言存储编码输出,C语言怎么输出一个菱形

    C语言怎么输出一个菱形 C语言是计算机的高级语言,在IT行业被众多的人们是使用,由于IT行业的热门,使用以及学习C语言的人越来越多,掌握一些C语言基本的语言是非常重要的,只有基础知识扎实了,才能在C语 ...

  4. Zabbix故障但是没有错误日志输出的一种解决办法

    Zabbix故障发生时没有错误日志输出,可能是由于日志级别不够,但是现网环境又不宜Debug全开,可以对zabbix服务器端的子进程提升日志级别. 操作方法如下:以子进程「Ping检查器(icmp p ...

  5. 输出一个菱形星星图案

    输出一个菱形星星图案 代码 <?php //当满足$center>=$row时,图案能够完全显示; $row = 10; $center = 10; $rowLength = 2 * $c ...

  6. 【转】Endnote中英文混排及输出作者全名的解决办法

    有的期刊在文章发表时要求期刊名及作者名都需要为全名,不能用省略简写名.那么这个一般的设置是很容易的,具体步骤如下: 第一步,这里以<植物遗传资源学报>的格式为例,打开Endnote后,点击 ...

  7. Java基础【之】输出一个菱形(详解)

    Java基础[之]输出一个菱形(详解) 代码示例 <目录:Java渐进式学习> <目录:Java设计模式> <目录:从零手写Tomcat> 代码示例 public ...

  8. 51单片机的应用——利用定时器控制输出对称方波

    单片机晶振为12MHz,编程实现T0模式1下在P1.1处输出周期为td的对称方波. 分析:利用定时器定时溢出控制P1.1输出的反相,达到输出周期方波 51的TOMD控制着定时器T0的工作,首先设置TM ...

  9. 输出每行坐标的的c语言算法,C语言输出空心菱形的实现

    http://www.cnblogs.com/liutogo/archive/2013/05/31/3110394.html 输出空心菱形是c语言初学者经常遇到的问题,由于涉及c语言的基础知识较多,也 ...

最新文章

  1. 致那些对人生还迷茫的年轻朋友
  2. HTML5性能优化需要注意的几个问题
  3. DCMTK:OFStandard中base64代码的测试程序
  4. SAP Fiori Elements - bindComponent - binding property in XML view will trigger odata request
  5. python中的wx_配置 Python的wxWidgets可视开发环境 | 学步园
  6. java 中文转化为拼音
  7. 苹果原生文字转语音播报
  8. 洛谷P2234 [HNOI2002]营业额统计 set简易解法
  9. JavaScript是什么
  10. java楼宇报警器_智能楼宇包含哪些安防子系统
  11. 手机上可以编程看代码的软件
  12. 软件设计师-8.算法分析与设计
  13. 【智能制造】智能制造50大产业链全景图
  14. Maven项目中非resources文件夹中的配置文件不生效的解决办法
  15. 需要获取trustedinstaller权限才能删除文件,删不了
  16. 深析Vue双向数据绑定(MVVM模型)
  17. Authing 背后的计算哲学
  18. 项目管理-计算专题(挣值分析)
  19. mysql中工资表,( 13 ) 数据库中有工资表 , 包括 “ 姓名 ” 、 “ 工资 ” 和 “ 职称 ” 等字段 , 现要对不同职称的职 - 赏学吧...
  20. Android:实现安卓小程序-记事本(备忘录)的开发

热门文章

  1. xposed模块编写教程_太极xposed模块使用教程
  2. 五款值得你值得一试的优秀电脑软件推荐
  3. 单片机什么叫位寻址?/不可位寻址?
  4. 夏天最美丽的就应该是荷花了
  5. js练习题:对象字面量的形式创建一个名字为可可的狗对象
  6. 人工智能最全学习路线
  7. 查询成绩第三名的学生信息
  8. 3.2【微信小程序全栈开发课程】登录功能(一)--实现登录功能
  9. 【微信JSSDK】PHP版微信录音文件下载
  10. 阿里员工调侃:花名考拉的妹子离职去了网易考拉,现在又回来了