分类: PHP
2010-11-19 02:14:53
1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7php的解法是这样的:
function ring_int($n,$data=1){ $matrix=array(); $ring=ceil($n/2); for($i=1;$i<=$ring;$i++){//分成环 $x=$y=$i-1;//每环起点 $rmax=$n-($i-1)*2-1;//成员个数 if($rmax==0){//中心点 $matrix[$x][$y]=$data++; break; } for($p=0;$p<4;$p++){//分成4面 for($r=0;$r<$rmax;$r++){ $matrix[$x][$y]=$data++; if($p==0)$y++; elseif($p==1)$x++; elseif($p==2)$y--; elseif($p==3)$x--; } echo $x."\t".$y."\n"; } } for($x=0;$x<$n;$x++){ for($y=0;$y<$n;$y++){ echo $matrix[$x][$y]."\t"; } echo "\n"; } }