给定正整数n,输出一个n*n的矩阵,如n=3,输出矩阵如下:
1 2 3
8 9 4
7 6 5
import java.util.Scanner;
class Fun{
public void fun(int[][] a,int n,int k,int count,int N){
if(n<=0)
return;
int i;
int j;
int m;
int p;
for(i=k;i<k+n&&count<=N;i++){ //上
a[k][i]=count;
count++;
}
for(j=k+1;j<k+n-1&&count<=N;j++){ //右
a[j][i-1]=count;
count++;
}
for(m=i-1;m>=k&&count<=N;m--){ //下
a[j][m]=count;
count++;
}
for(p=j-1;p>k&&count<=N;p--){ //左
a[p][k]=count;
count++;
}
fun(a,n-2,k+1,count,N); //递归构造
}
}
public class Main {
public static void main(String[] args) {
Fun fun=new Fun();
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
int[][] a=new int[n][n];
int k=0;
int N=n*n;
int count=1;
fun.fun(a, n, k,count,N);
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
System.out.print(a[i][j]+" ");
}
System.out.println();
}
scanner.close();
}
}