Python|2020年蓝桥杯:蛇形填数
问题描述如下图所示,小明用从 1 开始的正整数“蛇形”填充无限大的矩阵。1 2 6 7 15 …3 5 8 14 …4 9 13 …10 12 …11 ……(1)容易看出矩阵第二行第二列中的数是 5。请你计算矩阵中第 20 行第 20 列的数是多少?解决方案通过观察排列规律可以发现要寻找的数可以通过所在的行数,列数,斜排(右上—左下)以及该斜排最大的数之间存在的关系来求得。具体解决方法如下:通过行数,列数求出该数在第几斜排,再求出该斜排最大的数,然后判断斜排奇偶性,若为奇,则答案为最大的数减去行数加一;若为偶,则答案为最大的数减去列数加一。a = int(input())#第几行b = int(input())#第几列c = a+b-1#第几斜排n = 0for i in range(1, c+1):n += i#c斜排的最后一个数if c % 2 != 0:#奇偶性ans = n - a + 1#等于最大的数减行数加1else:ans = n - b + 1#等于最大的数减列数加1print(ans)结语解决了一道蓝桥杯一道填空题,培养做题与学习思维,对于知识的应用不够熟练,还需要更多的转换思维方式解题;之后巩固基础知识,培养更活跃的思维方式。主编:欧洋稿件来源:深度学习与文旅应用实验室(DLETA)
赞 (0)