php3种方法实现空心金字塔的打印

  • Post author:
  • Post category:php


<?php
/*
 *
 *帮朋友做题,写了一个这个空心金字塔的代码。希望和大家交流一下,提出*宝贵建议.
 *
 */
//第一种实现方法
$n=20;//定义总函数
for($i=1;$i<=$n;$i++)//行数循环
 {  
    for($k=1;$k<=$n-$i;$k++)//循环打印出每行前面的空格
	  {  
		  echo " ";
	  }
	//判断并打印出第一行与最后一行的'*'
	if(($i==1)||($i==$n))
	{
		for($j=1;$j<=2*$i-1;$j++)
		  {
			echo '*';
		  }
		  echo'<br/>';
	}else//循环打印出其他行的'*'与空格
	   {
			echo '*';
			for($k=1;$k<=2*$i-3;$k++)
				{
				echo ' ';
				}
			echo '*';
			echo '</br>';
	  }
}
//第二种实现空心金字塔(个人感觉代码繁琐,唉。)
$n=20;//定义总函数
for($i=1;$i<=$n;$i++)//行数循环
{  
  for($k=1;$k<=$n-$i;$k++)//循环打印出每行前面的空格
	{
        echo ' ';
    }
  //循环打印出每一行前面空格后的'*'
  if($i==1)//第一行
	{
		echo '*';
		echo '</br>';
	}else//其它行
		{echo '*';}
  if(($i>=2)&&($i<=$n-1))
	{ //循环打印出第二行到第n-1行的样式
       for($j=1;$j<=2*$i-3;$j++)
		{
	      echo ' ';
	    }
		echo '*';
		echo '</br>';
    }else if($i==$n)
	   {//循环打印出最后一行的样式
		  for($m=1;$m<=2*$i-2;$m++)//2*$i-2是因为前面多打印一个'*'
		   {
		     echo "*";
		   }
		   echo '</br>';
       }
}
//第三种方法比较简单
       $n = 10;
        for ($i = 1; $i <= $n; $i++) {
            for ($k = 1; $k <= $n - $i; $k++) {
                echo "&nbsp";
            }
            for ($j = 1; $j < 2 * $i - 1; $j++) {
                if (($i == 1) || ($i == $n)) {
                    echo '*';
                } else {
                    if (($m == 1) || ($m == 2 * $i - 1)) {
                        echo '*';
                    } else {
                        echo "&nbsp";
                    }
                }
            }


            echo '</br>';
        }
?>




版权声明:本文为ckshcjhacmsabcbba原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。