>백엔드 개발 >PHP 튜토리얼 >今天遇到的一份面试题

今天遇到的一份面试题

WBOY
WBOY원래의
2016-06-13 10:10:16839검색

今天遇到的一份面试题,求高手指教
题目要求是写一个函数,输入一个数字n,然后函数就输出一个n行n列的数阵,数阵样式举例如下:

n=3
-------------------
1 2 3
8 9 4
7 6 5

n=4
-------------------
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7

n=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

嗯,大致就是这么着,绕着圈子排序


→→→→┐
┌→→┐↓
↑┌→↓↓
↑└←┘↓
└←←←┘

-------------------
有木有高手做出来? 0.0

------解决方案--------------------

PHP code
function Circle($n) {  $k = $n % 2;  $ar = array();  for($i=0; $i= $m) $ar[$y][$x--] = $p++;    $x++;    $y--;    $m++;    while($y >= $m) $ar[$y--][$x] = $p++;    $n--;  }  if($k) $ar[$y+1][$x+1] = $p;  $r = '
'; foreach($ar as $v) $r .= ''; return $r.'
' . join(' ', $v) . '
'; }for($i=2;$i'; } ?>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.