函数递归求斐波那契数列
//函数递归求斐波那契数列
//编写程序,求数列1,1,2,3,5,8,13,21,……
//思路:
//第一步:找出表示数列第N项的递归公式:F(N)=F(N-1)+F(N-2)
//第二步:递归的结束条件,当N=1或N=2时,F(N)=1;
long int Fib(int n)
{
if (n <= 2)
return 1;
else
return Fib(n - 1) + Fib(n - 2);
//拿n=3带入一下,第一个返回值为1 第二个返回值1 所以第三项是2
}
int main()
{
int n;
scanf("%d", &n);
printf("第%d项的斐波那契数是:%ld\n", n, Fib(n));
return 0;
}
//总结:
//编写递归的 要点
//1):找到正确的递归算法,这是编写递归程序的基础
//2) :确定递归算法的结束条件,这是决定递归程序能否正常结束的关键
//数值问题,可以表达为数学公式,从数学公式推导出问题的递归定义(也就是算法的具体步骤),然后
//确定问题的边界条件,从而确定递归的算法和递归结束条件