题目+讲解:
代码:
# From : 蓝桥杯 基础练习
# Fibonacci数列: 输出一行,包含一个整数,表示Fn除以10007的余数。
# solution 1: 暴力递归求解再求余(但内存超限)
print("输入斐波那契数列的N")
n=int(input())
F = [0,1,1]
for i in range(3,n+1):
F.append(F[i-2] + F[i-1])
print(F[n]%10007)
# solution 2:每次计算前就取余,并且试图省去存数列的空间
print("输入斐波那契数列的N")
n=int(input())
F = [0,1,1]
for i in range(3,n+1):
F[1],F[2] = F[2]%10007, (F[1]+F[2])%10007
print(F[2])