一只青蛙一次可以跳上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循环迭代,第二种位移操作<<
----------------
坚持每天学习一点点