高效斐数(前92位)

//前92位斐数,这是long long的存储范围
#include<stdio.h>
/*迭代法*/
void fun(int n)
{
	int i;
	long long a1=a2=1,a3;
	for(i=1;i<=92;i++)
	{
		a3=a1+a2;
		a1=a2;
		a2=a3;
		printf("%lld\n",a2);
	}

}
int main()
{
	int i;
	b[1]=b[2]=1;
	fun();
	return 0;
}





//前92位斐数,这是long long的存储范围
#include<stdio.h>
long long a[94];
int flag=-1;
/*标志递归*/
void fun()
{
	int i;
	for(i=3;i<=92;i++)
	if(flag!=a[i])
		printf("%lld\n",a[i]);
	else
		printf("%lld\n",a[i]=a[i-1]+a[i-2]);
}
int main()
{
	int i;
	memset(a,-1,sizeof(a));
	a[1]=a[2]=1;
	fun();
	return 0;
}

  

posted @ 2012-05-30 12:54  加拿大小哥哥  阅读(233)  评论(0编辑  收藏  举报