您的位置:首页 > 编程语言 > PHP开发

php基础算法集合

2015-12-04 14:42 507 查看
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/>";
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: