费布拉切数列又称黄金分割数列,指的是这样一个数列:1 1 2 3 5 8 13 21....

 实现费布拉切数列的方法有两种,一种是以数组下标的形式,arr[i]=arr[i-1]+arr[i-2];arr[0]=1;

arr[1]=0;

代码:


#include <stdio.h>
int main()
{
	int arr[12];
	int i;
	arr[0]=1;
	arr[1]=1;
	for(i=2;i<12;i++)
	{
		arr[i]=arr[i-1]+arr[i-2];
	}
	for(i=0;i<12;i++)
	{
		printf("%d  ",arr[i]);
	}
	return 0;
}

第二种方法中使用了交换数的原理,f3=f1+f2;f1=f2,f2=f3

代码:

#include <stdio.h>
int Fib(int num)
{
	int f1=1,f2=1,f3=2;
	if (num<3)
	{
		return 1;
	}
	else 
	{
		num=num-2;
		while(num)
		{
			f3=f1+f2;
			f1=f2;
			f2=f3;
			num--;
			//printf("%d ",f3);
		}	
	}
	return f3;
}
int main()
{
	int num=8;
	int ret=Fib(num);
	printf("%d",ret);
	return 0;
}