java
题目描述
输出给定矩阵
样例
输入
1
2
3
4
5
0
输出
1
1 1
1 1
1 1 1
1 2 1
1 1 1
1 1 1 1
1 2 2 1
1 2 2 1
1 1 1 1
1 1 1 1 1
1 2 2 2 1
1 2 3 2 1
1 2 2 2 1
1 1 1 1 1
模拟即可,容易观察到每行数的外围长度是不断递减的。
import java.util.*;
public class Main{
public static void main(String af[]){
Scanner s=new Scanner(System.in);
while(true){
int n=s.nextInt();
if(n==0) break;
for(int k=n;k<=n;k++){
int [][]a=new int[k][k];
for(int i=0,cd=k,r=1;i<k;i++,cd-=2,r++){
for(int j=i;j-i+1<=cd;j++){
a[j][i]=a[i][j]=r;
}
int u=i+cd-1;
for(int j=i;j-i+1<=cd;j++){
a[j][u]=a[u][j]=r;
}
}
for(int i=0;i<k;i++){
for(int j=0;j<k;j++){
System.out.printf("%d ",a[i][j]);
}
System.out.printf("\n");
}
System.out.printf("\n");
}
}
}
}