用PHP输出对称菱形的简易办法

企鹅博客
19217
文章
0
评论
2019年7月13日20:01:32 评论 1.4K views 1674字阅读5分34秒

比如输出一个简单的菱形或者叫星星塔,首先是最外层控制行号,然后是内层的循环,内层的循环有两个第一个循环控制,然后第二个循环来控制星星的数量,控制空格的是总共有的行数减去当前的行数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 "
"; }

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

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

比如是这样

$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 "
"; } $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 "
"; }

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

//123454321
//-4-3-2-101234(数轴)
//432101234(绝对值)

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

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

然后就是432101234

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

相应的伪代码

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

	echo '
'; }

按照这个思路的话,首先最外层的循环控制的是数轴,也就是说从负数到正数的走一遍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 "
"; }

版权声明:本文为博主原创文章,未经博主允许不得转载。

以上就介绍了用PHP输出对称菱形的简易办法,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

  • 微信
  • 分享
  • 相关标签:line lines quot echo for
  • 本文原创发布php教程网 ,转载请注明出处,感谢您的尊重!
  • 相关文章

  • PHP如何安装和配置?
  • 继续阅读
    • 版权声明: 发表于 2019年7月13日20:01:32
    • 转载注明:https://www.qieseo.com/219263.html
    php隐藏文件实际下载地址的方法 php教程

    php隐藏文件实际下载地址的方法

    这篇文章主要介绍了php隐藏实际地址的文件下载方法,涉及php中header与file_get_contents方法的相关使用技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了php隐藏实际...
    CodeIgniter入口文件解析 php教程

    CodeIgniter入口文件解析

    提到了CI框架的基本流程,这里再次贴出流程图,以备参考:   作为CI框架的入口文件,源码阅读,自然由此开始。在源码阅读的过程中,我们并不会逐行进行解释,而只解释核心的功能和实现。 1. 设置应用程序...
    PHP四舍五入、取整、round函数使用 php教程

    PHP四舍五入、取整、round函数使用

    这篇文章主要介绍了PHP四舍五入、取整、round函数使用示例,需要的朋友可以参考下 小数例子: PHP保留两位小数并且四舍五入 复制代码 代码如下: $n=0.1265489; echo sprin...
    匿名

    发表评论

    匿名网友 填写信息

    :?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: