题解 | #蛇形矩阵#
蛇形矩阵
https://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e
# 构造两个变量,第一个变量存行的增量,第二个变量存列的增量 # 数据就为:初始变量(+行的增量) + 列的增量 def first_number(n): if n == 1: return 1 else: return first_number(n-1) + n - 1 def second_number(n, m): # n, m是位置 if m == 1: return first_number(n) else: return second_number(n, m-1) + m + n - 1 number = int(input()) for i in range(number): for j in range(number - i): print(second_number(i+1, j+1), end=' ') print()
第一个变量即 1 2 4 7 11
1
1 + 1 = 2
2 + 2 = 4
4 + 3 = 7
7 + 4 = 11
...
(n) + n = f(n-1) + n-1
即第一列的所有数字可以表示为一个递推函数 f(n) = f(n-1) + n-1