有一楼梯共有10级,如果规定每次只能走一级或两给,要登上第10级,共有多少种不同的走法?请各位高人把算法写出来,不要只给得数,因为得数我清楚.

问题描述:

有一楼梯共有10级,如果规定每次只能走一级或两给,要登上第10级,共有多少种不同的走法?
请各位高人把算法写出来,不要只给得数,因为得数我清楚.

最少跳5步,最多跳10步
5步;1种
6步;有2级是只跳1步的,有C(10,2)=45种
7步;有4级是只眺1步的,有C(10,4)=210种
8步;有6级是只跳1步的,有C(10,6)=210种
9步,有8级是只跳1步的,有C(10,8)=45种
10步;1种
一共有:2×(1+45+210)=512种
512=2^9=2^(10-1),再想想,应该有更简单的算法~
我错在哪里了?糟了,看不出来~

实际上这个结果是=
C(9,1)+C(8,2)+C(7,3)+C(6,4)+C(5,5)
因为只有5种可能:走1次2级台阶~走5次2级台阶
走一次的话,对2级台阶打包,并减少一级台阶(不太好理解,大概就是把它看成总共只有9级台阶,只上一级)
有C(9,1)=9种走法 走2次2级台阶也类似,看成总共只有8级台阶,然后上特殊的上2次

有C(8,2)种走法……
最后就得出了上式^
C(8,2) 表示的是对8取2的组合数

0个两级1种-----共10次,取0次两级插入10次1级,c(10)0
1个两级9种-----共9次,取1次两级插入8次1级,c(9)1
2个两级28种-----共8次,取2次两级插入6次1级,c(8)2
3个两级35种-----共7次,取3次两级插入4次1级,c(7)3
4个两级15种-----共6次,取4次两级插入2次1级,c(6)4
5个两级1种-----共5次,取5次两级插入0次1级,c(5)5;
1+9+28+35+15+1=89

上n有A(n)
A(n)=A(n-1)+A(n-2)
上n=上n-1(再上1)+上n-2(再上2)
1,2,3,5,8,13,21,34,55,89

斐波那契数列,每次只能走1或2级,所以到第十层的走法总和是到第8层的走法加上到第9层的走法.
第一层的走法数为1,第二层为2,第三层就是1+2=3,第四层2+3=5 类推下去
1 2 3 5 8 13 21 34 55 89.
所以第十层为89种走法