1,用算法画菱形(结果有两种)
<?php
/**
* Content: php基础算法
*/
//画菱形固定长度
//上半部
/**
* 只要下半部分与上班部分对称,但不输出下半部分最长的那个
*/
for($i=0;$i<=3;$i++) {//3表示左右各三个星花,因为在输出星花处用的是小于等于2*$i
for($j=0;$j<=3-$i;$j++) {
echo " ";//每次循环输出两个空格,循环几次就会有2倍的输出
}
for($k=0;$k<=2*$i;$k++) {//每次循环都输出奇数个星花
echo "*";
}
echo "<br/>";
}
//下半部
for($a=0;$a<=2;$a++) {//与上半部分倒数第二行开始一一对称
for($c=0;$c<=$a+1;$c++) {
echo " ";
}
for($b=4-2*$a+1;$b> 0;$b--) {
echo "*";
}
echo "<br/>";
}
echo "<hr/>";
/**
*输出下半部分最长的那一行,并且以后的输出跟上半部分对应
*/
for($i=0;$i<=3;$i++) {//3表示左右各三个星花,因为在输出星花处用的是小于等于2*$i
for($j=0;$j<=3-$i;$j++) {
echo " ";//每次循环输出两个空格,循环几次就会有2倍的输出
}
for($k=0;$k<=2*$i;$k++) {//每次循环都输出奇数个星花
echo "*";
}
echo "<br/>";
}
//下半部
for($a=0;$a<=4;$a++) {//多输出一行,使得上半部分与下半部分除去最长一行一一对应
for($c=0;$c<$a;$c++) {
echo " ";
}
for($b=8-2*$a+1;$b> 0;$b--) {
echo "*";
}
echo "<br/>";
}
//画菱形传参数
function lingxing($x) {
/**
* 如果想输出自定义的长度,可以调用此函数
* $x代表最长那行输出星花的最大个数为(2*($x+1)+1)
*/
for($i=0;$i<=$x;$i++) {//左右个$x个星花
for($j=0;$j<=$x-$i;$j++) {
echo " ";
}
for($k=0;$k<=2*$i;$k++) {//表示输出的行数
echo "*";
}
echo "<br/>";
}
for($a=0;$a<=$x+1;$a++) {
for($c=0;$c<$a;$c++) {
echo " ";
}
for($b=2*($x+1)-2*$a+1;$b>0;$b--) {
echo "*";
}
echo "<br/>";
}
}
echo "<hr/>";
lingxing(2);
echo "<hr/>";
2,用算法画三角形
//画三角形:如菱形的上半部分或者下半部分都可以当作三角形
/**
* 普通算法
*/
for($i=0;$i<=3;$i++) {
for($j=0;$j<=3-$i;$j++){
echo " ";
}
for($k=0;$k<=2*$i;$k++){
echo "*";
}
echo "<br/>";
}
echo "<hr/>";
/**
* 直角三角形
*/
for($i=0;$i<=3;$i++ ){
for($a=0;$a<=3-$i;$a++){
echo " ";
}
for($b=0;$b<=$i;$b++) {
echo "*";
}
echo "<br/>";
}