实现斐波那契数列(跳台阶问题)

1,1,2,3,5,8,13...这种除前两项外,其他项是前两项之和的序列叫做斐波那契数列

关于思路:
首先根据斐波那契数列的性质我们可以想到用递归去实现它,但递归的效率很低,所以我们可以采用非递归的办法,用三个变量来回的转换从而实现斐波那契数列

关于代码:

递归:

int fun(int n)
 {
  if (n <= 2)
  return 1;
  else
  {
  return fun(n - 1)+fun(n - 2);
  }
 
 }

非递归:

int fun(int n)
{
long  first = 1;
long  second = 0;
long   third = 0;
if (n < 2)
return 1;
else
{
for (int i = 2; i <= n; i++)
{
third = first + second;
second = first;
first = third;
}
return third;
}

}

结果:

 

关于总结:

斐波那契数列是个常考的问题,但是往往有时候看不出来它要用斐波那契额数列来考虑。比如说,跳台阶问题,小明一次可以跳上一节台阶,也可以跳上两节台阶,小明从楼下到家假如有N节台阶,总共有多少中跳法.   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值