蛇形矩阵的两种实现方法(java版本)

来源:互联网 发布:淘宝秒杀群怎么做 编辑:程序博客网 时间:2024/06/06 02:59

看到一个关于蛇形矩阵的帖子,

想了下如何一行一行打印,

无须建立二维数组存储。

基本思想如下:

把这个输出的二维数组从外到里分解为多层

每层都是一个正方形的边

从外到里称为1,2,3...层

对于一个指定维数(行=列)的二维数组,

其中某个位置的元素(x,y)

首先根据x,y计算出这个位置所在的层数,

然后根据层数计算出这层左上角元素的值,

(这个元素的位置必然是(层数-1,层数-1))

最后根据x,y计算出它相当于本层左上角元素的偏移量,

二者相加,就是(x,y)的值.

下面附上代码,欢迎大家拍砖。

程序比较粗糙,主要是算法实现,