java數組練習題,數組順時針螺旋填數.

2維n方陣數組   把1,2,3,...,n*n的數字按照順時針螺旋的形式填入其中。
 
  1. package test; 
  2.  
  3. import java.util.Scanner; 
  4.  
  5. public class TestArray2 { 
  6.     public static void main(String[] args) { 
  7.         Scanner sc = new Scanner(System.in); 
  8.         System.out.println("請輸入N值:"); 
  9.         int n = sc.nextInt(); 
  10.         int up = 0
  11.         int down = n - 1
  12.         int left = 0
  13.         int right = n-1
  14.         int num = 0
  15.         int[][] arr = new int[n][n]; 
  16.         while(down>=up && right>=left){ 
  17.             for(int i=left;i<=right;i++){ 
  18.                 arr[up][i] = num; 
  19.                 num++; 
  20.             } 
  21.             up++; 
  22.             for(int i=up;i<=down;i++){ 
  23.                 arr[i][right] = num; 
  24.                 num++; 
  25.             } 
  26.             right--; 
  27.             for(int i = right;i>=left;i--){ 
  28.                 arr[down][i] = num; 
  29.                 num++; 
  30.             } 
  31.             down--; 
  32.             for(int i=down;i>=up;i--){ 
  33.                 arr[i][left] = num; 
  34.                 num++; 
  35.             } 
  36.             left++; 
  37.         } 
  38.         for(int i=0;i<arr.length;i++){ 
  39.             for(int j=0;j<arr.length;j++){ 
  40.                 if(arr[i][j]<10){ 
  41.                     String s = "0"+Integer.toString(arr[i][j]); 
  42.                     if(j==(arr.length-1)){ 
  43.                         System.out.print(s); 
  44.                     }else
  45.                         System.out.print(s+"-"); 
  46.                     } 
  47.                 }else
  48.                     if(j==(n-1)){ 
  49.                         System.out.print(arr[i][j]); 
  50.                     }else
  51.                         System.out.print(arr[i][j]+"-"); 
  52.                     } 
  53.                 } 
  54.                 if(j==n-1){ 
  55.                     System.out.println(); 
  56.                 } 
  57.             } 
  58.         } 
  59.     } 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章