先来看原题
十分简单
做法与斐波那契数列相似
但写出代码却出现了错误
line=[1 for i in range(20190324)]#这出没有错
for i in range(3,20190325):#这里出现了明显错误
#列表从0开始,然鹅此处却误以为理所当然的认为从1开始,
#明显这里的3,考虑到了这一点,
#而到20190325这完全忘记这一点收到了
#(line=[1 for i in range(20190324)])这里的误导
line[i]=(line[i-1]+line[i-2]+line[i-3])%10000
print(line[20190324])#到此处更是迷糊了
原因混淆了数列的开始概念
由于此题运算范围极大而调试困难,思维惯性更无法突破。
而此前学习也多次翻过这种错误,多数情况下都不易察觉,故写出来,警戒自己。
正确代码
line=[1 for i in range(20190324)]
for i in range(3,20190323):
line[i]=(line[i-1]+line[i-2]+line[i-3])%10000
print(line[20190323])