求斐波那契数:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。
结果展示:
n<=39
思路:使用递归或者循环实现,使用递归有一个缺点,就是当n非常大时,函数调用次数巨大,速度极慢。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//
//int Fibonacci(int n) //递归方法
//{
// if(n==0)
// return 0;
// if(n==1)
// return 1;
// return Fibonacci(n-1)+Fibonacci(n-2);
//
//}
int Fibonacci(const int n)
{
int arr[2] = {0,1}; //斐波那契数后一项是前两项的和,故把其前两项存在数组中
int i = 0;
if(n<=0)
{
return -1;
}
if(n==1)
{
return arr[0];
}
for(i=0; i<n-2; i++)
{
int temp = arr[1];
arr[1] = arr[0]+arr[1];
arr[0] = temp;
}
return arr[1];
}
int main()
{
int n = 0;
printf("你想得到第几项斐波那契数:");
scanf("%d",&n);
printf("第%d项是:%d\n",n,Fibonacci(n));
return 0;
}
结果展示: