看到一个关于蛇形矩阵的帖子,
想了下如何一行一行打印,
无须建立二维数组存储。
基本思想如下:
把这个输出的二维数组从外到里分解为多层
每层都是一个正方形的边
从外到里称为1,2,3...层
对于一个指定维数(行=列)的二维数组,
其中某个位置的元素(x,y)
首先根据x,y计算出这个位置所在的层数,
然后根据层数计算出这层左上角元素的值,
(这个元素的位置必然是(层数-1,层数-1))
最后根据x,y计算出它相当于本层左上角元素的偏移量,
二者相加,就是(x,y)的值.
下面附上代码,欢迎大家拍砖。
程序比较粗糙,主要是算法实现,