Heim >Backend-Entwicklung >PHP-Tutorial >今天遇到的一份面试题

今天遇到的一份面试题

WBOY
WBOYOriginal
2016-06-13 10:10:16827Durchsuche

今天遇到的一份面试题,求高手指教
题目要求是写一个函数,输入一个数字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'; } ?>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:验证图片出不来请Nächster Artikel:金额数字的转换解决方法