题解 | #蛇形矩阵#
蛇形矩阵
https://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e
import java.util.Scanner;
// 观察矩阵不难发现 从 1到n*(n+1)/2的数列 按二维数组遍历顺序填充到数组。
// 遍历顺序 为航从下往上递减,列从左往右递增,当到达最顶上一行时,立刻回到最大行下开启新的一行,
// 列则回到第一列,
// 1 3 6 10 15
// 2 5 9 14
// 4 8 13
// 7 12
// 11
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int limit = (n*n+n)/2;
int[][] sit = new int[n][n];
int j=0;
int k=0;
int l=0;
for(int i=1;i<=limit;i++){
sit[j][k] = i;
if(j==0){
l++;
j = l;
k = 0;
}else{
j--;
k++;
}
}
for(int a=0;a<n;a++){
for(int b=0;b<n;b++){
System.out.print(sit[a][b]);
if(b==n-1||sit[a][b+1]==0){
System.out.println();
break;
}else{
System.out.print(" ");
}
}
}
}
}
查看9道真题和解析