猴子摘香蕉一次可以摘1个或2个,总共50个,问有多少种摘法?
2015-04-10 21:00
441 查看
问题来自知乎
等我写完发现,知乎上都比我写的好,我快哭了!!!
等我写完之后发现不就是那啥啥函数,贴上lua代码
N很大的时候,估计是抗不住了,代码还需要优化。
优化后的代码:
等我写完发现,知乎上都比我写的好,我快哭了!!!
等我写完之后发现不就是那啥啥函数,贴上lua代码
N很大的时候,估计是抗不住了,代码还需要优化。
function banana( n ) local c = 1; if n == 0 then return 0 elseif n == 1 then return 1 elseif n == 2 then return 2 end return (banana(n - 1) + banana(n - 2)) * c; end for i = 1, 10 do print(banana(i)) end
优化后的代码:
local know = {} function banana( n ) if know then return know end local c = 1; if n == 0 then know = 0 return 0 elseif n == 1 then know = 1 return 1 elseif n == 2 then know = 2 return 2 end local r = (banana(n - 1) + banana(n - 2)) * c; know = r return r end for i = 1, 50 do print(i, banana(i)) end
相关文章推荐
- 一个人上台阶可以一次上1个,2个,或者3个,问这个人上n层的台阶,总共有几种走法?
- 一个楼梯有50个台阶,一次可以走一个台阶,也可以走两个台阶,也可以走三个台阶,问总共有多少种走法.
- 人人笔试1:一个人上台阶可以一次上1个,2个,或者3个,问这个人上n层的台阶,总共有几种走法?
- 第一题:一个人上台阶可以一次上1个,2个,或者3个,问这个人上n层的台阶,总共有几种走法?
- ACM再来一题: 一个人上台阶可以一次上1个,2个,或者3个,问这个人上n层的台阶,总共有几种走法?
- 人人笔试1:一个人上台阶可以一次上1个,2个,或者3个,问这个人上n层的台阶,总共有几种走法?
- 对于一个数字,我们可以直观的了解到它所含有的数字,例如: 3243中包含1个2、2个3、1个4。 那么,给你一个数n,求从1到n之间的所有这些数字中,总共包含多少个m。
- 跳台阶问题:一个台阶共有N级,如果一次可以跳1级,也可跳2级,求总共有多少种跳法
- 一只青蛙一次可以跳上 1 级台阶,也可以跳上2 级。求该青蛙跳上一个n 级的台阶总共有多少种跳法
- (算法题)一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
- 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
- 50个阶梯,你一次可以上一阶或两阶,走上去,共有多少种走法?
- 腾讯面试题:50个阶梯,你一次可以上一阶或两阶,走上去,共有多少种走法【原】
- 《剑指offer》-一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法
- 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法
- 一道matlab作业题:假设从楼上到楼下有8个台阶,每一步有三种走法:走1个台阶;走2个台阶;走3个台阶,问可以有多少种方案?并将所有方案输出
- 一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。求总共有 多少总跳法?
- 有n个台阶,如果一次只能上1个或2个台阶,求一共有多少种上法
- java实现一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
- 腾讯面试题:50个阶梯,你一次可以上一阶或两阶,走上去,共有多少种走法【原】