10、Acwing 2021/1/22 754. 平方矩阵 II
- 平方矩阵 II
输入整数N,输出一个N阶的二维数组。
数组的形式参照样例。
输入格式
输入包含多行,每行包含一个整数N。
当输入行为N=0时,表示输入结束,且该行无需作任何处理。
输出格式
对于每个输入整数N,输出一个满足要求的N阶二维数组。
每个数组占N行,每行包含N个用空格隔开的整数。
每个数组输出完毕后,输出一个空行。
数据范围
0≤N≤1000≤N≤100
输入样例:
1 2 3 4 5 0
输出样例:
1 1 2 2 1 1 2 3 2 1 2 3 2 1 1 2 3 4 2 1 2 3 3 2 1 2 4 3 2 1 1 2 3 4 5 2 1 2 3 4 3 2 1 2 3 4 3 2 1 2 5 4 3 2 1
方法一:
import java.util.*;
class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(true){
int n = sc.nextInt();
if(n==0){
break;
}
int[][]a = new int[n+1][n+1];
for(int i = 1 ; i <= n ; i++){
for(int j = i , k = 1 ; j <= n ; j++ , k ++){
a[i][j] = k;
a[j][i] = k;
}
}
for(int i = 1 ; i <= n ; i++){
for(int j = 1 ; j <= n ; j++){
System.out.print(a[i][j]+" ");
}
System.out.println();
}
System.out.println();
}
}
}
方法二:
import java.util.*;
class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(true){
int n = sc.nextInt();
if(n==0){
break;
}
for(int i = 1 ; i<= n ;i++){
//前面部分数
for(int j = i ; j >= 1 ; j--){
System.out.print(j+" ");
}
//后面部分数
for(int j = i + 1 ; j <= n ; j++){
System.out.print((j-i+1)+" ");
}
System.out.println();
}
System.out.println();
}
}
}
方法三:
import java.util.*;
class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(true){
int n = sc.nextInt();
if(n == 0){
break;
}
for(int i = 1 ; i <= n ; i++){
for(int j = 1 ; j <= n ; j++){
System.out.print(Math.abs(i-j)+1+" ");
}
System.out.println();
}
System.out.println();
}
}
}