在做题时遇到这个问题,查看了一些博客后,写下自己的理解
青蛙跳楼梯问题:
问题一:一只青蛙一次可以跳1级楼梯或者2级楼梯,一共有n级楼梯,问一共有多少种到达目的地的方法
根据问题可知:
n=1,一共有1种方法
n=2,一共有2种方法
n=3,一共有3种方法
n=4,一共有5种方法
n=5,一共有8种方案
。。。
根据数据的规律,我们知道n级方案的结果就是(n-1)级的结果+(n-2)级的结果,即f(n)=f(n-1)+f(n-2)
问题二:一直青蛙一次可以跳1级台阶、2级台阶或者3级台阶,一共有n级台阶,问一共有多少种到达目的地的方法
根据问题可知:
n=1,一共有1种方案
n=2,一共有2种方案
n=3,一共有4种方案
n=4,一共有7种方案
n=5,一共有13种方案
n=6,一共有24种方案
。。。
根据数据的规律,我们知道f(n)=f(n+1)+f(n+2)+f(n+3)
所以,我们知道了,在此类问题的时候,首先需要列出从1到k对应的返回值,然后得出等式f(n)=f(n-1)+f(n-2)+f(n-3)...+f(n-k)。
我们在计算每一次n对应的结果时,可以根据已知的n的前k个结果,分别加上1到k,即为我们所求的n对应的结果了