P5731 【深基5.习6】蛇形方阵 java

阅读 42

2022-04-04

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		int n;
        //这里的数组大小设置的大一点就行
		int a[][]=new int[15][15];
		int x=1,y=1,mark=1;
		Scanner sc=new Scanner(System.in);
		n=sc.nextInt();
		a[x][y]=1;
		
		while(mark<n*n) {
			while(a[x][y+1]==0 && y+1<=n) {//判断如果向右走到底边界以及右边可能有数的情况
				y++;
				mark++;
				a[x][y]=mark;
			}
			while(a[x+1][y]==0 && x+1<=n) {//下
				x++;
				mark++;
				a[x][y]=mark;
			}
			while(a[x][y-1]==0 && y-1>=1) {//左
				y--;
				mark++;
				a[x][y]=mark;
			}
			while(a[x-1][y]==0 && x-1>=1) {//上
				x--;
				mark++;
				a[x][y]=mark;
			}
		}
		for(int i=1;i<=n;i++) {
			for(int j=1;j<=n;j++) {
				System.out.printf("%3d",a[i][j]);
			}
			System.out.println();
		}
	}

}


 

精彩评论(0)

0 0 举报