题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
解题思路:
思路一:最后跳一步的跳法有f(n-1)种,最后跳两步的跳法有f(n-2)种,……,最后跳n-1步的跳法有f(1)种。f(1)=1。f(n)=1+f(n-1)+f(n-2)+……+f(1) = 2^(n-1)。
思路二:隔板问题,n个格子有n-1个插隔板的位置,可以选择不插或插1到n-1个隔板。f(n)=C(n-1,0)+C(n-1,1)+……+C(n-1,n-1) = 2^(n-1)。
代码:return pow(2,n-1)
注意:加快运算,可采用向左移位的方法,即 return 1<<(n-1)