標籤:java
/**
* 6-3
* 編程實現如下要求的螺旋矩陣
* 螺旋方陣存放在n*n的二維數組中並將其列印輸出
* 要求 n 由程式讀入
* 數字螺旋方陣由程式自動產生
* (非人為的初始化或逐個輸入)
*/
import java.io.*;import java.util.*;public class Test{public static void main(String[] args){/*聲明一個維數是n的數組*/int n=0;System.out.print("請輸入螺旋矩陣的維數n:");Scanner read = new Scanner(System.in);n = read.nextInt();int array[][] = new int[n][n];/*為數組中的各個元素賦值*/int elem = 1; //初始化第一個元素的值為1int cycleNumber=0;//判斷迴圈的次數if (n % 2 != 0)cycleNumber=n/2+1;elsecycleNumber=n/2;for(int i = 0; i < cycleNumber; i++){//從外到內開始迴圈for (int j = i; j < n-i; j++)//從左至右賦值{array[i][j]=elem;elem++;}for (int k = i+1; k < n-i; k++)//從上到下賦值{array[k][n-i-1]=elem;elem++;}for (int l = n-i-2; l >= i; l--)//從右至左賦值{array[n-i-1][l]=elem;elem++;}for (int m = n-i-2; m > i; m--)//從下到上賦值{array[m][i]=elem;elem++;}}/*輸出數組*/for(int i = 0; i < n; i++){for (int j = 0; j < n; j++)System.out.printf("%-3d", array[i][j]);System.out.println();}} }
本文出自 “hacker” 部落格,請務必保留此出處http://anglecode.blog.51cto.com/5628271/1619860
那些年,一起學的Java 6-3