天天看點

螺旋矩陣(java)

public class HelixMatrix {

	/**
	 * 螺旋矩陣
	 * 
	 * by o(∩_∩)o...雪
	 */
	public static void main(String[] args) {
		int n = 7;		//矩陣維數
		int num = 1;		//計數
		int a[][] = new int[n][n];
		for(int k=0;k<n;k++)		//每圈
		{
			for(int i=k;i<n-1-k;i++)		//第k圈的前半圈
			{
				a[i][k] = num++; 		//第k圈的第一條邊
				a[n-1-k][i] = num+n-2-2*k;		//第k圈的第二條邊
			}
			num+=(n-1-2*k);			//第k圈的後半圈的第一個數
			for(int i=n-1-k;i>k;i--)		//第k圈的後半圈
			{
				a[i][n-1-k] = num++;		//第k圈的第三條邊
				a[k][i] = num+n-2-2*k;		//第k圈的第四條邊
				
			}
			num+=(n-1-2*k);			//第k圈的前半圈的第一個數
		}
		if(n%2==1)			//最中間的數字
		{
			a[n/2][n/2]=n*n;
		}

	
		for(int i=0;i<n;i++){		//數組輸出
			for(int j=0;j<n;j++)
				System.out.print(a[i][j]+"  ");
			System.out.println();
		}

	}
}
           
結果:
           
螺旋矩陣(java)