题解 | #蛇形矩阵#
蛇形矩阵
http://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e
import java.util.Arrays; import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
while (sc.hasNextLine()) {
String inputStr = sc.nextLine();
int number = Integer.parseInt(inputStr);
// 定义一个二维数组
int[][] dp = new int[number][number];
// 计算每一行的第一个数
for (int i = 0; i < number; i++) {
if (i == 0) {
dp[i][0] = 1;
} else {
dp[i][0] = dp[i - 1][0] + i;
}
}
// 计算一行中 每列的数
for (int i = 0; i < number; i++) {
for (int j = 0; j < number; j++) {
if (j == 0) {
dp[i][j] = dp[i][0] + j;
}else {
// 主要逻辑在这里要计算每行每列的值
dp[i][j] = dp[i][j-1] + (i+j+1);
}
}
}
for (int i = 0; i < number; i++) {
for (int j = 0; j < number-i; j++) {
System.out.print(dp[i][j]);
System.out.print(" ");
}
// 循环完,下一次循环开始之前,要换到下一行
System.out.println("");
}
}
}
}