题解 | #蛇形矩阵#
蛇形矩阵
http://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num = sc.nextInt(); int[] initArr = new int[num]; initArr[0] = 1; for (int i = 1; i < num; i++) { initArr[i] = initArr[i - 1] + i; } for (int i = 0; i < num; i++) { for (int j = 0; j < num - i; j++) { System.out.print(initArr[j+i]+(j)+" "); } System.out.println(); } } }
首先初始化输出矩阵的的第一列;
观察矩阵的第二列,可得2+1 = 3,4+1=5,7+1=8
观察矩阵的第三列,可得4+2=6,7+2=9
观察矩阵的第四列,可得7+3=10
可能递推式子: 初始化矩阵的下标 (i+j) 加上j的值,刚好满足上述观察的结果;