斐波那契数列的应用(算法实现)

来源:互联网 发布:chrome 程序员插件 编辑:程序博客网 时间:2024/05/22 06:09

下面这个题是一个面试题,其实很简单的,就是一个斐波那契数列的应用。

一个楼梯有100级,一次可以爬一级或两级,爬完100级,有几种走法?


解答:

如果用n表示台阶的级数,a n表示某人走到第n级台阶时,所有可能不同的走法,容易得到:    ① 当 n=1时,显然只要1种跨法,即a 1=1。  ② 当 n=2时,可以一步一级跨,也可以一步跨二级上楼,因此,共有2种不同的跨法,即a 2=2。③ 当 n=3时,可以一步一级跨,也可以第一步跨一级,第二步跨二级或第一步跨二级,第二步跨一级上楼,因此,共有3种不同的跨法,即a 3=3。④ 当 n=4时, 分二种情况分别讨论跨法:如果第一步跨一级台阶,那么还剩下三级台阶,由③可知有a3 =3(种)跨法。如果第一步跨二级台阶,那么还剩下二级台阶,由②可知有a2 =2(种)跨法。
斐波那契数列,每次只能走1或2级,所以到第100层的走法总和是到第98层的走法加上到第99层的走法。第一层的走法数为1,第二层为2,第三层就是1+2=3,第四层2+3=5 类推下去 到An有两种方法,从n-1跨1步,从n-2跨2步,则有关系式 : An = A(n-1)+A(n-2)斐波纳挈数列


斐波纳挈数列参考:http://blog.csdn.net/qq_21792169/article/details/51615770


2 0
原创粉丝点击