斐波那契数列的递归和非递归(画图解释,简单易懂)

首先 我解释一下什么是斐波那契数列;
1 1 2 3 5 8 13 ……;
相信大家都找到了规律;
(1)前两个数都是1;
(2)第三个数=前两个数之和。
由此,我们就找到了解题的根源
在这里插入图片描述
有这个函数关系,我们就可以写递归的代码了

int  fib(int i)
{
	if(i<=2)
	{
		return 1;
	}
	else
	{
		return fib(i-1)+fib(i-2);
	}
}

非递归我先给大家上代码
然后解释

int fib(int i)
{
     if (i <= 2)//当求前两个数时,直接返回1;
  	return 1;
   int a = 1;
   int b = 1;
   int c = 0;
   while (i-2>0)//循环的条件,注意我们已经把前两个都算上了,所以循环条件一定要 -2;
   {
	  c = a + b;
            a = b;
	  b = c;
	  i--;
   }
  return c;
 }

以上就是这道题的算法,如果还有疑问,可以在下面直接评论 。
文末,我想问大家知道斐波那契数列的别名吗,欢迎评论 欧~~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值