C语言练习---求第n个斐波那契数(不考虑溢出)。
斐波那契数列:1,1,2,3,5,8,13,21,34,55,89........
这个数列从第3项开始,每一项都等于前两项之和。
在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=1,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)
方法一:递归法
可以从数学计算方式上知道,第F(n)个斐波那契数的值为:F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)
#include <stdio.h>
#include <stdlib.h>
//斐波那契数列为:
//1 1 2 3 5 8 13 21 34 55 89
int Fib (int n)
{
if(n<=2)
return 1;//如果n小于等于2,则返回1
else
return Fib(n-1)+Fib(n-2);//如果n大于2,第n个斐波那契数为,前面两个数相加
}
int main()
{
int n = 0;
int ret = 0;
scanf("%d",&n); //输入需要查询第n个数
ret = Fib(n); //将函数返回值赋给ret,并打印出来
printf("%d",ret);
return 0;
}
执行