C语言斐波那契数列问题

计算第n个斐波那契数列的值

#include<stdio.h>
unsigned long int fibonacci(unsigned int n)
{
	unsigned long int f1=0,f2=1,f;
	int i;
	for(i=2;i<n;i++)
	{
		f=f1+f2;
		f1=f2;
		f2=f;
	}
	return(f);
}

void main()
{
	unsigned long int y;
	unsigned int n;
	printf("你想知道第几个斐波那契数:");
	scanf("%d",&n);
	y=fibonacci(n);
	if(n==1)
		printf("第1个斐波那契数为:0\n");
	else if(n==2)
		printf("第二个斐波那契数为:1\n");
	else	
		printf("第 %d 个斐波那契数为:%ld\n",n,y);
}

用数组计算前20个斐波那契数列的值

#include<stdio.h>
int main()
{
	int i,f[20]={1,1};
	for(i=2;i<20;i++)
		f[i]=f[i-2]+f[i-1];
		
	for(i=0;i<20;i++)
		{
			if(i%5==0)
				printf("\n");
			printf("%12d",f[i]);
		}

	return 0;
}

你可能感兴趣的:(C语言)