一本通1188 斐波那契数列(2)

 


1
#include <iostream> 2 using namespace std; 3 int main() 4 { 5 int n; 6 int a[200]; //输入的第N个数字 7 int f[1000001]; //将1000000个斐波那契数取1000的模都求出来 8 f[1]=1; 9 f[2]=1; 10 cin>>n; 11 for(int i=0;i<n;i++) 12 { 13 cin>>a[i]; 14 } 15 for(int i=3;i<1000001;i++) 16 { 17 f[i]=(f[i-1]+f[i-2])%1000; //高精度取模 18 } 19 for(int i=0;i<n;i++) 20 { 21 cout<<f[a[i]]<<endl; //将输入的数字a[i]当成脚标用于f[]中,求出输入数字的斐波那契数取模的结果 22 } 23 return 0; 24 }
利用递推 斐波那契数列的特性a[n]=a[n-1]+a[n-2a],得出结果
因为还要模1000,数字比较大 用了高精取模

原文地址:https://www.cnblogs.com/--840-114/p/12455937.html