吃苹果问题

一共有10个苹果,每次可以吃一个或者两个,问有多少种吃法;


如果你吃10个苹果,可以分解成下面两种情况:

● 吃9个苹果,最后吃1个苹果。假设这种情况下,上前面9个苹果的方法数为m。

● 吃8个苹果,最后吃2个苹果。假设这种情况下,上前面8个苹果的方法数为n。

所以,吃10个苹果的方法数,其实就是 m + n。

可以递归为:

f(n) = f(n - 1) + f(n - 2),   n > 2

f(n) = 2                      ,   n = 2

f(n) = 1                      ,   n = 1

 

即: 斐波那契数列

 function fn(n){
    if(n==1) return 1;
    if(n==2) return 2;
    return fn(n-1)+fn(n-2);
  }
  console.log(fn(10))

附:斐波那契数列代码写法(用上面的)

function fibo (n) {
  return n > 1 ? fibo(n - 1) + fibo(n - 2) : 1;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值