题解 | #蛇形矩阵#
蛇形矩阵
http://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e
搬砖:
蛇形矩阵 找规律题 最佳解法
1 3 6 10
2 5 9
4 8
7
第一行[1 3 6 10]
第二行是 去掉第一行的第一列,然后将后面的[3 6 10]分别减1得到的
解法:
(1)求第一行第n项规律。
n*(n+1)/2
给出的各项可看出
a(n+1)-a(n)=n+1,于是
a(n)-a(n-1)=n
……
a(2)-a(1)=2
以上各项相加得
a(n+1)-a(1)=(n+1)+n+……+2
所以a(n+1)=(n+1)+n+……+2+1
则a(n)=n+……+2+1=n*(n+1)/2
(2)第二行是 去掉第一行的第一列,然后将后面的[3 6 10]分别减1得到的
while True: try: N=int(input()) res=[] for i in range(N): if i==0: res=[(e+2)*(e+1)//2 for e in range(N)] else: res=[e-1 for e in res[1:]] print(' '.join(map(str,res))) except: break