题解 | #蛇形矩阵#
蛇形矩阵
https://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int num = in.nextInt(); // 输入的数字 num
int lastRowFirst = 1;
for (int i = 0; i < num; i ++) { // 一共要输出 num 行
int rowFirst = lastRowFirst + i; // 当前行的第一个数字,要根据上一行的第一个数字求取
System.out.print(rowFirst + " ");
lastRowFirst = rowFirst; // 更新 lastRowFirst 变量,供打印下一行时使用
int colDiff = i + 2; // 在一行中,每一列数字之间的差值
int nextNum = rowFirst + colDiff; // 计算下一个要打印的数字
while (colDiff <= num) { // 使用 while 循环打印,依据是发现规律:每一行的最后一个数字与倒数第二个数字的差值为 num
System.out.print(nextNum + " ");
colDiff ++;
nextNum += colDiff;
}
System.out.println();
}
}
}
没找着啥简洁的规律,硬写,写出来的代码也不是很美观。。

查看2道真题和解析