青蛙变态跳台阶解法

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

  这个问题可以想到递归来解决,因为以前遇到过类似的爬楼梯问题,也相当于斐波那契数列。

  跳台阶,可以跳1级,也可以跳2级,求n级台阶跳法。

   第一步有两种跳法:

  跳1级,剩下跳法为f(n-1);

  跳2级,剩下跳法为f(n-2);

  当为n时,f(n)=f(n-1)+f(n-2);

  但此题可以跳上n级台阶:

  第一步有n种跳法:跳1级、跳2级、到跳n级

  跳1级,剩下n-1级,则剩下跳法是f(n-1)

  跳2级,剩下n-2级,则剩下跳法是f(n-2)

  跳3级,剩下n-3级,则剩下跳法是f(n-3)

  ......

  推理得到:

  f(n)=f(n-1)+f(n-2)+...+f(1)

  f(n-1)=f(n-2)+f(n-3)+...+f(1)

  则f(n)=2*f(n-1)

 

  

  

posted @ 2017-04-13 14:58  cppeterpan  阅读(623)  评论(1编辑  收藏  举报