Chinaunix首页 | 论坛 | 博客
  • 博客访问: 12888
  • 博文数量: 3
  • 博客积分: 221
  • 博客等级: 二等列兵
  • 技术积分: 60
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-18 13:45
个人简介

文章分类

全部博文(3)

文章存档

2013年(1)

2010年(2)

我的朋友
最近访客

分类: PHP

2010-11-19 02:14:53

给定一个整数N,生成一个N*N的矩阵,矩阵中元素取值为1至N,1在左上角,其余各数按顺时针方向旋转前进,依次递增放置。
例如,当N=4时,矩阵中的内容如下:
1  2  3  4
12 13 14 5
11 16 15 6
10 9  8  7
php的解法是这样的:
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";
    }
}

阅读(707) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:安裝django遇到的問題

给主人留下些什么吧!~~