牛客网 回环矩阵

链接:https://www.nowcoder.com/questionTerminal/205b62c2618546d6a52f23552b2699f6
来源:牛客网

首页 > 试题广场

[问答题]

编程输出以下格式的数据。

when i=1:

7   8    9
6   1    2
5   4    3

when i=2:

21 22 23 24 25
20   7   8  9 10
19   6   1  2  11
18   5   4  3  12
17 16 15 14 13

import java.util.*;
import java.math.*;
 
public class Main{
	static int maxn=(int)(500+10);
	static int[][] a=new int[maxn][maxn];
	static void print(int n) {
		int start=(2*n+1),end=1;
		int num=(2*n+1)*(2*n+1);
		
		while(start>end) {
			//up
			for(int i=start;i>end;i--)
				a[end][i]=num--;
			//left
			for(int i=end;i<start;i++)
				a[i][end]=num--;
			//bottom
			for(int i=end;i<start;i++)
				a[start][i]=num--;
			//right
			for(int i=start;i>end;i--)
				a[i][start]=num--;
			//update
			start--;end++;
		}
		a[n+1][n+1]=1;
		int len=2*n+1;
		for(int i=1;i<=len;i++) {
			for(int j=1;j<=len;j++) {
				System.out.print(a[i][j]);
				if(j==len)
					System.out.println();
				else
					System.out.print(" ");
			}
		}
	}
	public static void main(String[] args) {
		Scanner cin=new Scanner(System.in);
		int n=cin.nextInt();
		print(n);
		cin.close();
	}
}

猜你喜欢

转载自blog.csdn.net/qq_40507857/article/details/83897848