腾讯模拟笔试题——回形数

来源:互联网 发布:云豹直播完整源码 编辑:程序博客网 时间:2024/05/22 15:06

原题描述不记得了。。
给定一个数字N,这里假设是3,输出如下:
1 2 3
8 9 4
7 6 5
数字4,输出如下:
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
数字5,输出如下:
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9

<?phpfunction huixing($N){    $start = 0;    $end = $N-$start-1;    $arr = array();    $num = 1;    while ($start<=$end) {        if($start == $end) {            $arr[$start][$end] = $num;            break;        }        //从左到右        for($i=$start;$i<=$end;$i++){            $arr[$start][$i] = $num++;         }        //从上到下        for($j=$start+1;$j<=$end;$j++){            $arr[$j][$end] = $num++;        }        //从右到左        for($i=$end-1;$i>=$start;$i--){            $arr[$end][$i] = $num++;         }        //从下到上        for($j=$end-1;$j>=$start+1;$j--){            $arr[$j][$start] = $num++;        }        //print_r($arr);exit;        $start++;        $end--;    }       return $arr;}$N = 5;$arr = huixing($N);for($i=0;$i<$N;$i++){    for($j=0;$j<$N;$j++){        echo $arr[$i][$j].' ';    }    echo "</br>";}
0 0
原创粉丝点击