青蛙跳台阶问题为什么是斐波那契的兔子问题

斐波那契数列的规律是什么上楼梯的上法依次为:1,2,3,5,8,13,21···请你仔细观察这列数中的规律后回答:上10级台阶共有____种上法._百度作业帮
斐波那契数列的规律是什么上楼梯的上法依次为:1,2,3,5,8,13,21···请你仔细观察这列数中的规律后回答:上10级台阶共有____种上法.
斐波那契数列的规律是什么上楼梯的上法依次为:1,2,3,5,8,13,21···请你仔细观察这列数中的规律后回答:上10级台阶共有____种上法.
规定前两项为1,1第1项+第2项=第3项 1+1=2第2项+第3项=第4项 1+2=3第3项+第4项=第5项 2+3=5第n-2项+第n-1项=第n项10阶台阶的走法等于斐波那契额第11项,则=89收藏,938 浏览
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
调试了半天提示
java.lang.NoSuchMethodError: main
Exception in thread "main"
我写的程序在下面,有什么明显的错误吗 ?
public class Solution {
public int JumpFloor(int target) {
if (target &= 0) {
return -1;
} else if (target == 1) {
return 2 * JumpFloor(target - 1);
public static void main(String[] args) {
Solution st = new Solution();
st.JumpFloor(3);
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
其实就是斐波那契数列问题。
假设f(n)是n个台阶跳的次数。
f(2) 会有两个跳得方式,一次1阶或者2阶,这回归到了问题f(1),f(2) = f(2-1) + f(2-2)
f(3) 会有三种跳得方式,1阶、2阶、3阶,那么就是第一次跳出1阶后面剩下:f(3-1);第一次跳出2阶,剩下f(3-2);第一次3阶,那么剩下f(3-3).因此结论是f(3) = f(3-1)+f(3-2)+f(3-3)
f(n)时,会有n中跳的方式,1阶、2阶...n阶,得出结论:
f(n) = f(n-1)+f(n-2)+...+f(n-(n-1)) + f(n-n) =& f(0) + f(1) + f(2) + f(3) + ... + f(n-1) ==
f(n) = 2*f(n-1)
所以,可以得出结论
public long jumpFloor(int n) {
if (n &= 0)
return -1;
if (n == 1)
return 2 * jumpFloor(n - 1);
考虑到效率,也可以改成迭代来做。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
但看程序不看题,写得没有问题,看不出问题,可编译通过,可以跑。看似也没有规定青蛙不让往回跳,搂主这个结论
是否应该在考虑下
分享到微博?
与我们一起探索更多的未知
专业的开发者技术社区,为用户提供多样化的线上知识交流,丰富的线下活动及给力的工作机会
加入只需一步
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要举报该,理由是:
扫扫下载 App
SegmentFault
一起探索更多未知题目:一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。
求总共有多少总跳法,并分析算法的时间复杂度。
这道题最近经常出现,包括MicroStrategy等比较重视算法的公司
都曾先后选用过个这道题作为面试题或者笔试题。
解题思路:
经典的青蛙跳台阶.....第一次看到果断被干掉了....后来在网上看了一下..这尼玛就是斐波那契数列....疯了...
假设f(n)是到第n级台阶的跳数的总数
青蛙跳到第n阶台阶有两种方法,从第n-2级台阶跳2级和从第n-1级台阶跳1级..
这样就转化成求青蛙到达n-2级台阶的跳数和到达第n-2级台阶的跳数...
得到递推公式:
f(x) = f(x-1) + f(x -2);
斐波那契数列....
public class Q27 {
public static void main(String[] args) {
int stage = 5;
System.out.println(getStep(stage));
public static int getStep(int stage)
if(stage == 1 || stage == 0)
return getStep(stage-1) + getStep(stage - 2);
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:5974次
排名:千里之外
原创:33篇
(7)(23)(3)&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!有针对性地对这些能力进行训练吧
服务器君一共花费了7.012 ms进行了2次数据库查询,努力地为您提供了这个页面。
试试阅读模式?希望听取您的建议
在面试过程中,应聘者除了展示自己的编程能力和技术功底之外,还需要展示自己的软技能,诸如沟通能力和学习能力。
沟通能力与团队合作意识
随着软件系统的规模越来越大,软件开发已经告别了单打独斗的年代,程序员与他人的变得越来越重要。在面试过程中,面试官会观察应聘者在介绍项目经验或者算法思路时是否观点明确、逻辑清晰,并以此判断他沟通能力的强弱。另外,面试官也会从应聘者说话的神态和语气来判断他是否有的意识。通常面试官不会喜欢高傲或者轻视合作者的人。
IT 行业知识更新很快,因此程序员只有具备很好的学习能力才能跟上知识更替的步伐。通常面试官有两种办法考查应聘者的学习能力。第一种方法是询问应聘者最近在看什么书、从中学到了哪些新技术。面试官可以用这个问题了解应聘者的学习愿望和学习能力。第二种方法是抛出一个新概念,接下来他会观察应聘者能不能在较短时间内理解这个新概念并解决相关的问题。比如面试官要求应聘者计算第 1500 个丑数。很多人都没有听说过丑数这个概念。这时面试官就会观察应聘者面对丑数这个新概念,能不能经过提问、思考、再提问的过程,最终找出丑数的规律从而找到解决方案。
知识迁移能力
知识迁移能力是一种特殊的学习能力。如果我们能够把已经掌握的知识迁移到其他领域,那么学习新技术或者解决新问题就会变得容易。面试官经常会先问一个简单的问题,再问一个很复杂但和前面的简单问题相关的问题。这时面试官期待应聘者能够从简单问题中得到启示,从而找到解决复杂问题的窍门。比如面试官先要求应聘者写一个函数求斐波那契数列,再问一个青蛙跳台阶的问题:一只青蛙一次可以跳上 1 级台阶,也可以跳上 2 级台阶,请问这只青蛙跳上n级的台阶总共有多少种跳法?应聘者如果具有较强的知识迁移能力,就能分析出青蛙跳台阶问题实质上只是斐波那契数列的一个应用。
抽象建模与发散思维
还有不少面试官喜欢考查应聘者的抽象建模能力和发散思维能力。面试官从日常生活中提炼出问题,比如如何判断 5 张扑克牌是不是顺子,考查应聘者能不能把问题抽象出来用合理的数据结构表示,并找到其中的规律解决这个问题。面试官也可以限制应聘者不得使用常规方法,这要求应聘者具备创新精神,能够打开思路从多角度去分析、解决问题。比如面试官要求应聘者不用加减乘除四则运算实现两个整数的加法。此时面试官期待应聘者能够打开思路,用位运算实现整数的加法。
我们可以用下图来总结出应聘者需要具备的素质。
从上图可以看出,应聘者在面试之前需要做足准备,对编程语言、数据结构和算法等基础知识有全面的了解。面试时如果碰到简单的问题应聘者一定要注重细节写出完整、健壮的代码。如果碰到复杂的问题应聘者可以通过画图、举具体例子分析和分解复杂问题等方法先理清思路再动手编程。
除此之外,应聘者还应该不断优化时间效率和空间效率,力求找到最优的解法。在面试过程中,应聘者还应该主动提问弄清楚题目的要求,表现自己的沟通能力。当面试官前后问的两个问题有相关性时,尽量把解决前面问题的思路迁移到后面的问题中去,展示自己良好的学习能力。如果能做到这么几点,那么应聘者顺利通过面试获得心仪的职位将是瓜熟蒂落的事情。
本文地址:,欢迎访问原出处。
不打个分吗?
转载随意,但请带上本文地址:
如果你认为这篇文章值得更多人阅读,欢迎使用下面的分享功能。
小提示:您可以按快捷键 Ctrl + D,或点此 。
大家都在看
现代魔法研究协会欢迎你
阅读一百本计算机著作吧,少年
维斯 (Mark Allen Weiss) (作者), 张怀勇 (译者), 等 (译者)
《数据结构与算法分析:C++描述(第3版)》是数据结构和算法分析的经典教材,书中使用主流的程序设计语言C++作为具体的实现语言。书的内容包括表、栈、队列、树、散列表、优先队列、排序、不相交集算法、图论算法、算法分析、算法设计、摊还分析、查找树算法、k-d树和配对堆等。《数据结构与算法分析:C++描述(第3版)》适合作为计算机相关专业本科生的数据结构课程和研究生算法分析课程的教材。本科生的数据结构课程可以使用《数据结构与算法分析:C++描述(第3版)》第1章~第9章,多学时课程还可以讲解第10章;研究生算法分析课程可以使用第6章~第12章。
扫一扫,在手机上阅读
栏目最新博文
8,922 views
9,624 views
22,024 views
15,230 views
14,485 views
15,789 views
3,903 views
13,977 views
18,385 views
栏目博文推荐
4,508 views
5,751 views
10,316 views
6,802 views
4,216 views
2,425 views
4,053 views
2,214 views
2,441 views
2,445 views
为成功找方法,不为失败找借口。
关于网站与作者
互联网信息太多太杂,各互联网公司不断推送娱乐花边新闻,SNS,微博不断转移我们的注意力。但是,我们的时间和精力却是有限的。这里是互联网浩瀚的海洋中的一座宁静与美丽的小岛,供开发者歇息与静心潜心修炼(愿景)。
“Veda”的本义是知识、启示,希望这里能为开发者提供充足的技术资料。
我的电子邮件gonnsai(,腾讯微博:,欢迎与我联系。

我要回帖

更多关于 青蛙跳台阶问题 的文章

 

随机推荐