首页 > 其他 > 详细

剑指offer——变态跳台阶

时间:2019-03-14 22:13:15      阅读:133      评论:0      收藏:0      [点我收藏+]

一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

分析:

两种方法,第一种比较直观,第二种比较直接。

第一种:f(1)=1;    f(2)=f(2-1)+f(2-2)=2;    f(3)=f(3-1)+f(3-2)+f(3-3);    f(n) = f(n-1)+f(n-2)+...+f(n-n) = f(0)+f(1)+...+f(n-1);

  因此 f(n-1) = f(0)+f(1)+...+f(n-2);f(n) = f(n-1)+f(n-1) = 2*f(n-1)

第二种:除了最后一个台阶,剩余的都是可跳可不跳两种情况,因此结果就是 2^(n-1)

所以代码实现也对应有两种写法:第一种for循环迭代,第二种位移操作<<

剑指offer——变态跳台阶

原文:https://www.cnblogs.com/tccbj/p/10533717.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!