PHP面试题目

29个成员

用PHP打印图形

发表于 2015-12-21 1525 次查看

用PHP打印图形由“*”符号组成的菱形图案

效果:

7回复
  • 2楼 墨云溪 2015-12-21

    <?php
    function tree($n) {
        $arr = array();
        $a = array();
        for($i=1;$i<$n-1;$i+=2){
            $arr[] = $i;
        }
        for ($k=1; $k<=$n ; $k+=2) { 
            array_unshift($a, $k);
        }
        $b = array_merge($arr,$a);
        $m = array_search(max($b),$b);
        echo '<div style="text-align:center;">';
        foreach ($b as $k => $v) {
            echo str_repeat('*',$v).'<br />';
        }
        echo '</div>';
    }
    tree(10);

    • 墨云溪 2015-12-21
      实在不知道要怎么才对称输出0.0 css都加上了 哈哈哈哈
    • 福娃大师兄 2015-12-21
      回复 墨云溪:我开始的算法和你很相似,就是每一行按照空格和星号顺序循环,但发现效率不高
  • 3楼 福娃大师兄 2015-12-21

    <?php 

    function Diamond($n) {
        $num=($n-1)+$n;
        for($i=1;$i<=$num;$i++) {  //纵向循环
            $m=abs(($num-($i+($i-1)))/2);
            for($v=1;$v<=$num;$v++){   //横向循环
                if(($v<=$m)||($v>($num-$m))) echo '&nbsp;';else echo '*';    
            }
            echo '<br/>';
        }
    }
    Diamond(11);

    ?>

  • 4楼 leoma 2015-12-21

    <?php 
    function Run($num){

        for ($i=1; $i <=$num*2-1  ; $i++) { 
            $null = abs($num-$i);
            $start = 2*($num-$null)-1;
            echo str_repeat('#', $null);
            echo str_repeat('*', $start);
            echo "<br/>";
        }
    }

    Run(11);
     ?>

  • 5楼 福娃 2015-12-21

    注: 以下中文PHP复制到程序里,可正常运行

    <?php

    function 星($行位){
        $某行星数 = ($行位 - 1)*2+1 ;
        return str_repeat("*" , $某行星数);
    }

    $总行数=$最大星数=11;

    for($i=1;$i<=$总行数;$i++){
        $星数=strlen( 星($i) );
        $某行空格数 = abs(($最大星数 - $星数)/2); //会有负值所以取绝对值
        echo str_repeat("&nbsp;" , $某行空格数);

        if($i < ($总行数-1)/2+1 ){ //计算中间行位置
             echo 星($i)."<br>";
        }else{
             echo 星($总行数-$i+1)."<br>";  //将超过中间行的行位与没超过的行位对应
        }
    }

    ?>

发表回复
你还没有登录,请先登录注册

加入我们吧,一起学习QQ群516033298