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

原创
2016-07-30 13:29:30 1903浏览

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

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

//$line 表示行号
//$space = $lines-$line;//每行的前导空格
//$star = 2*$line - 1;//m每行的星星数量

//外层循环控制行号
for($line=1; $line";
}

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

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

比如是这样

$lines=12;
for ($line=1; $line ";
}
$lines=12;
for ($line=$lines-1; $line >=1 ; $line--) { 
	for ($j=1; $j ";
}
然后还有就是一种比较巧的方法 利用数轴

//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';
}

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

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

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

for($i=-($lines-1); $i";
}

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

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

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。