南陽理工ACM 題目33 蛇形填數
阿新 • • 發佈:2019-01-27
蛇形填數
時間限制:3000 ms | 記憶體限制:65535 KB 難度:3 描述 在n*n方陳裡填入1,2,...,n*n,要求填成蛇形。例如n=4時方陳為:10 11 12 1
9 16 13 2
8 15 14 3
7 6 5 4
- 輸入
- 直接輸入方陳的維數,即n的值。(n<=100)
- 輸出
- 輸出結果是蛇形方陣。
- 樣例輸入
6 9 2
5 4 3
import java.io.*; import java.util.*; public class Main { public static void main(String[] args) { Scanner cin = new Scanner(new BufferedInputStream(System.in)); int arr[][]; int n = cin.nextInt(); int i = -1; int j = n-1; int temp = 0; arr = new int[n][n]; while(temp<n*n){ while(i<n-1&&arr[i+1][j]==0){ arr[++i][j] = ++temp; } while(j>0&&arr[i][j-1]==0){ arr[i][--j] = ++temp; } while(i>0&&arr[i-1][j]==0){ arr[--i][j] = ++temp; } while(j<n-1&&arr[i][j+1]==0){ arr[i][++j] = ++temp; } } for(int x=0;x<n;x++){ for(int y=0;y<n;y++) System.out.print(arr[x][y]+" "); System.out.println(""); } } }