有20阶楼梯,一次只能走1阶或2阶,共有几种走法?

如题所述

这个题最简单的做法就是分析法。
就是假设阶梯有N层,则按N=1,2,3,4……逐步分析
推出一般规律,即走法a(n)=a(n-2)+a(n-1)可以看出这是一个递推公式
同时也满足菲波拉契数列的情况
所以20级阶梯的走法a(20)就为菲波拉契数列的第20项
a(20)=fib(20)=10946

另外一种就比较复杂,根据走2步的不同情况分析,最少一个2步都不走,最多为10个。(也可以根据1步,但太多了。)
(1)一个2步都不走,为1种情况。
(2)走1个2步,总共步数为19,从19个中随便选1个为2步的 C(19,1)
(3)走2个2步,总共步数18,从18个中随便选2个为2步的。C(18,2)
依次类推为C(17,3);C(16,4);C(15,5)……C(10,10)
总走法=1+C(19,1)+C(18,2)+C(17,3)+……+C(10,10)
=1+19+153+ 680+1820+……+1=10946
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-02-22
根据走2步的不同情况分析,最少一个2步都不走,最多为10个。(也可以根据1步,但太多了。)
(1)一个2步都不走,为1种情况。
(2)走1个2步,总共步数为19,从19个中随便选1个为2步的 C(19,1)
(3)走2个2步,总共步数18,从18个中随便选2个为2步的。C(18,2)
依次类推为C(17,3);C(16,4);C(15,5)……C(10,10)
总走法=1+C(19,1)+C(18,2)+C(17,3)+……+C(10,10)
=1+19+153+ 680+1820+……+1=10946追问

第2个回答  2016-02-22

插空法加捆绑法可以解决:

具体自己算。

第3个回答  2016-02-22
分为0个2阶到10个2阶。
比如20个1阶(一种)。
18个1+1个2:C19取1(19种)
16个1+2个2:C18取2(153种)
……
接下来你自己算下
第4个回答  2019-02-14
class T1{
public static int method(int n){
if(n==1||n==2)

return 1;
else

return method(n-1)+method(n-2);

}
public static void main(String[] args){
System.out.println(method(20))

}
}
所以答案6765
相似回答