链接: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();
}
}