题解 | #蛇形矩阵#
蛇形矩阵
https://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e
import java.util.Scanner; // 利用 矩阵相邻数字之间的差 为 等差数列 来解决 // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 int n = in.nextInt(); int[][]snake = new int[n][n]; snake[0][0] = 1; int countRow = 2; int countCol = 1; for (int i = 1; i < n; i++) { snake[i][0] = snake[i - 1][0] + countCol; countCol++; } for (int i = 0; i < n; i++) { int thisCountRow = countRow; for (int j = 1; j < n; j++) { snake[i][j] = snake[i][j - 1] + thisCountRow; thisCountRow++; } countRow++; } for (int i = 0; i < n; i++) { for (int j = 0; j < n-i; j++) { if (snake[i][j] != 0) System.out.print(snake[i][j] + " "); } System.out.println(); } /*int [][] snake = new int[n][n]; // 由于输入正整数 snake[0][0] = 1; if(n>=2){ for(int i=1;i<n;i++){ snake[i][0] = snake[0][i-1] + 1; // 左侧第一列 for(int j=1;j<=i;j++){ snake[i-j][j] = snake[i-j+1][j-1] + 1; } } } for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ if(snake[i][j]!=0) System.out.print(snake[i][j] + " "); } System.out.println(); }*/ } }