>39级台阶<
小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是 39
级!
站在台阶前,他突然又想着一个问题:
如果我每一步只能迈上 1
个或 2
个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。那么,上完 39
级台阶,有多少种不同的上法呢?
说明:
1.见上详述
一、解题思路
1、解法一( Java )
解法思路: (暴力分析法分析 + 动态规划算法 )递推方程:仅右脚登上第 n
阶的总共的次数=第 n-1
阶仅左脚登上阶梯的次数+第 n-2
阶仅左脚登上阶梯的次数,然而第 n
阶仅左脚登上阶梯的次数=第 n-1
阶仅右脚登上阶梯的次数+第 n-2
阶仅右脚登上阶梯的次数
代码如下:
public class ThirtyNineSteps {
public static void main(String[] args) {
int n=39;
int a[]=new int[n];
int b[]=new int[n];
int num=Stairs(a, b);
System.out.println(num);
}
public static int Stairs(int a[],int b[]) {
a[0]=0;b[0]=1;
a[1]=1;b[1]=1;
for(int i=2;i<a.length;i++) {
a[i]=b[i-1]+b[i-2];
b[i]=a[i-1]+a[i-2];
}
return a[a.length-1];
}
}
运行结果截图如下: