题解 | #蛇形矩阵#
蛇形矩阵
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

查看22道真题和解析