原题描述不记得了。。
给定一个数字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
<?php
function 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>";
}