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代替long long int时有一个超时问题。处理不同数据类型有区别吗?如何改变性能?
答案 0 :(得分:0)
你不需要让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];
}