恩蓝号

sin1+sin1/2+sin1/3+…+sin1/n,求fibonacci数列的前n项

Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。

刚开始做

def svd(n): if(n==1): return 1 elif(n==2): return 1 else: return svd(n-1)%10007+svd(n-2)%10007n=int(input())print(svd(n))

运行测试后,发现这样会超时因为使用迭代,数值太大,内存会不够所以用列表来存储

a=[]a.append(1)a.append(1)n=int(input())f=n-1for i in range(2,n): a.append((a[i-1]+a[i-2])%10007)print(a[f])

免责声明:文章源自网络,版权归原作者所有,如有侵犯联系删除。

当前位置:首页 > 编程知识 » 2023-03-03 12:08:22

猜你喜欢