每日一算法(6)

每日算法篇-蓝桥真题篇

“一晚上没睡好,因为刷到一个小红书,年仅29岁的程序员失业,都说程序员是青春饭,确实如此不只是中国,世界都是这样,这个需要不断新鲜洗液洗礼的行业,舔着刀尖挣着钱,我不是因为到底要不要做了一个程序员而烦恼,而是我非常喜爱这个行业,但是到底要不要考研,3年时间是进公司走经验还是深造,很难考虑,考研对于普通老百姓来说又是啃老的三年,真的很难选,也不知道怎么选。”——努力成为程序员的耿耿(2021/10/27)

题目

给定数列 1, 1, 1, 3, 5, 9, 17, …,从第 4 项开始,每项都是前 3 项的和。求第 20190324 项的最后 4 位数字。---------蓝桥真题(Python)
思考: 看题目很像Fibonacci数列问题,其实本质差不多,递归就行了,但是有个小知识点要注意,Python限制了递归次数1000次,所以如果要用Python写,就要小心递归问题,所以这个我们用列表写,当x<4时,输出1就好,大于4就用个循环,把递归问题转换成循环问题,其实都一样。去后四位是取余10000要注意是取余范围。

def evaluation(x):
	if x<4:
		return 1
	else:
		a=[1,1,1]
		for i in range(3,x):
			a.append((a[i-1]+a[i-2]+a[i-3])%10000)
		return a[x-1]

最近的蓝桥真题都是填空题,其实填空题一点都不难,只要有一定的编程基础都可以很好地解决,所以比赛中有区分度的题真就是大题,后面我会筛选出题目的难易程度,一步一步慢慢来,加油!

你可能感兴趣的:(数据结构,算法,程序人生,python)