画出菱形

好久没来了。。。。今天开始研究小算法。。。为未来毕业做准备

自己先画出了一个小菱形玩玩   ,然后上网搜下是否有其他方法,,,貌似还真有。。但是本质是一样的,如下

<?php
function draw1($n)
{
 //上一半
 for($i=0;$i<$n;$i++)
  {
  for($j=0;$j<$n-$i-1;$j++)
  {
   echo "&nbsp;"; 
  }
  for($k=0;$k<=2*$i;$k++)
  {
   echo "*";
  }
  echo "<br />";
  }
  //下一半
  for($i=$n-1;$i>0;$i--)
  {
  for($j=0;$j<$n-$i;$j++)
  {
   echo "&nbsp;"; 
  }
  for($m=0;$m<2*$i-1;$m++)
  {
   echo "*";
  }
  echo "<br />";
  }
}
draw1(4);

function draw2($n)
{
 //画上一半
 for($i=0;$i<=$n;$i++){
    for($j=0;$j<=$n-$i;$j++){
    echo "&nbsp";
    }
    for($k=0;$k<=2*$i;$k++){
    echo "*";
    }
    echo "<br />";
 }

 //画下一半
 for($i=$n-1;$i>=0;$i--)
 {
    for($j=0;$j<=$n-$i;$j++)
    {
   echo "&nbsp";
    }
    for($k=0;$k<=2*$i;$k++)
    {
   echo "*";
    }

    echo "<br />";
 }
}
draw2(4);

function draw3($n){
  //上半部分
  for($i=0; $i<=$n; $i++)
  {
    for($j=0; $j<=$n-$i; $j++)
  echo '&nbsp'; 
    for($j=0; $j<=2*$i; $j++)
  echo '*'; 
    echo '<br />';  //换行
  }
 
  //下半部分
  for($i=$n-1; $i>=0; $i--)
  {
    for($j=$n-$i; $j>=0; $j--)
  echo '&nbsp';
    for($j=2*$i; $j>=0; $j--)
  echo '*';
    echo '<br>';
  }
}

draw3(4);  //生成菱形
?>

 

你可能感兴趣的:(画出菱形)