本帖最后由 xuzuning 于 2011-11-10 08:24:06 编辑

解决方案 »

  1.   

    <?php$sum = 30; //规模for ($i=0; $i<$sum/2; ++$i)
    {
    echo '<p>';
    for ($ii=0; $ii<$sum; $ii++)
    {
    $str = ($i < $sum / 2 - $ii) ? '&nbsp;': '*';
    if($str == '*') $str = ($i == $sum / 2 - $ii || $ii == $sum / 2 + $i) ? '*': '&nbsp;';
    if($i+1 == $sum/2 && $ii != 0) $str = '*'; 
    echo $str;
    }
    echo '</p>';
    }
    ?>
    看看。。=_=.. 可以优化就优化下吧。。
      

  2.   

    就是一个一个字符输出了。外面的for是列。里面的for是行...然后..
      

  3.   

    金字塔
    <?php
    $n=6;
    for($i=1;$i<=$n;$i++){
     //打印每一层的空格数
     for($j=1;$j<=$n-$i;$j++) {
      echo "&nbsp;";
     }
       //打印每一层的星星个数
       for($k=1;$k<=($i-1)*2+1;$k++) {
        echo '*';
       }
       echo '<br/>';
    }
    echo '<hr/>';
    ?>
      

  4.   

    金字塔<?php
    $n=6;
    for($i=1;$i<=$n;$i++){
     //打印每一层的空格数
     for($j=1;$j<=$n-$i;$j++) {
      echo "&nbsp;";
     }
       //打印每一层的星星个数
       for($k=1;$k<=($i-1)*2+1;$k++) {
        echo '*';
       }
       echo '<br/>';
    }
    echo '<hr/>';
    ?>