用迭代算法求裴波那契数列的第40项与前40项之和,写出完整的程序

如题所述

double SumFbnqi(int n,double & an)
{
if(n<=1){an=1;return 1;}//第一项a1=1,Sum=1
if(n==2){an=1;return 2;}//第二项a2=1, Sum=1+1=2

double a1=1,a2=1;
double a=0,s=a1+a2;

for(int i=0;i<n-2;i++)
{
a=a1+a2;//递推
s+=a; //求和
a1=a2; //向前走
a2=a; //向前走
}
an=a; //即使多线程,也不会在计算完成前改变an的值。
return s;
}
int main(int argc,char argv[])
{
int n=40;
double an,sn;//裴波那契数列,增长很快。所以用 double表示。
sn=SumFbnqi(n,an);
printf("Fbnaqi a[%d] =%lf ,Sum of First %d =%lf",n,an,n,an);

}
温馨提示:答案为网友推荐,仅供参考
相似回答