如下图所示,小明用从 11 开始的正整数“蛇形”填充无限大的矩阵。
1 2 6 7 15 ...
3 5 8 14 ...
4 9 13 ...
10 12 ...
11 ...
...
容易看出矩阵第二行第二列中的数是 55。请你计算矩阵中第 2020 行第 2020 列的数是多少?
两种思路:
第一种比较简单(但是我没想到)
'''
对角线上的元素为1,5,13,21
为前一个元素+行号的4倍
'''
res=1
for i in range(1,20):
res += 4*i
#print(res)
#print('===================')
print(res)
建议先做题前先把行号表上,第一种比较好想
第二中比较抽象(我想到的,但是花的时间比较长了)
import os
import sys
# # 请在此输入您的代码
# 找规律
# 1 2 6 7 15 16 28 29
# 3 5 8 14 17 27 30
# 4 9 13 18 26 31
# 10 12 19 25 32
# 11 20 24 33
# 21 23 34
# 22 35
# 36
# 第一列的规律
# 1 3 4 10 11 21 22 36 37 55
# 2 1 6 1 10 1 14 1 18
#找第一列的代码
if __name__ == '__main__':
l=[1,3]
b = [2]
j=0
for i in range(2,40):
if i%2==0:#奇数
j+=1
l.append(l[i-1]+1)
b.append(b[j-1]+4)
if i%2!=0:
l.append(l[i-1]+b[j])
# print(l)
# print(len(l))
#从0 开始第39(20+20-1)个 ,然后再+20-1
print(l[38]+19)