Java實現ACM中的倒蛇陣
阿新 • • 發佈:2018-12-31
倒蛇陣
輸入
包括一系列的測試用例,每個包含一個整數n,0<=n<=9,n=0時退出程式
輸出
對應的倒蛇陣
樣例輸入
2
3
0
樣例輸出
4 1
3 2
7 8 1
6 9 2
5 4 3
import java.util.Scanner; public class H { public static void main(String[] args) { Scanner in = new Scanner(System.in); int num; while((num=Integer.parseInt(in.nextLine()))!=0) { int[][] arr = new int[100][100]; int i=0, j=num-1, max=num*num,ans=1; arr[i][j]=1; while(ans < max) { while(i+1 < num&& arr[i+1][j] == 0) arr[i++][j] = ans++; while(j-1 >= 0 && arr[i][j-1] == 0) arr[i][j--] = ans++; while(i-1 >= 0 && arr[i-1][j] == 0) arr[i--][j] = ans++; while(j+1 < num && arr[i][j+1] == 0) arr[i][j++] = ans++; } for(i=0;i<num;i++) { for(j=0;j<num;j++) { if(arr[i][j]==0) System.out.print(num*num+" "); else { if(j!=num-1) System.out.print(arr[i][j]+" "); else System.out.print(arr[i][j]); } } System.out.println(); } } } }