关于代码超时

Regarding time out in code

本文关键字:超时 代码 于代码      更新时间:2023-10-16
  for(int a0 = 0; a0 < t; a0++){
    long long int n;
 //taking the input limit
    cin >> n;
    long long int  n1=8,n2=34,sum=10;
    //iteration till the limit
    while(n2<=n)
    {
        long long int l=n2;
      //for finding the next even fibonacci number
        n2=4*(n2)+n1;
        n1=l;
        sum+=n1;
    }
    cout<<sum<<endl;
}

这是用于查找给定极限 n 的偶数斐波那契数的总和的代码。当我使用 int 代替长整型 int 时,存在超时问题。处理不同的数据类型是否有区别?性能将如何变化?

你不需要做 n2=34。我们可以使用数组来完成这个问题,如下所示:

int a[1001];
memset(a,0,sizeof(a));
while(!EOF){
    a[0]=a[1]=1;
    cin>>n;
    for(int i=2;i<=n;i++){
        a[i]=a[i-1]+a[i-2];
    }
    cout<<a[n];
}