1.题目描述
假设你正在爬楼梯。需要 n
阶你才能到达楼顶。每次你可以爬 1
或 2
个台阶。你有多少种不同的方法可以爬到楼顶呢?
2.代码
public class ClimbStairs {
public static void main(String[] args) {
//输出结果
System.out.println(ClimbStairs(8));
}
public static int ClimbStairs(int n) {
//当n=1时只有一种方法爬楼梯,返回1
if (n == 1){
return 1;
}
//当n=2时有两种方法爬楼梯,返回2
if (n == 2){
return 2;
}
//将这个问题转化成为“斐波那契数列”问题进行解决
int a=1,b=2,temp;
for (int i = 3; i<= n; i++){
temp = a;
a = b;
b= temp+b;
}
return b;
}
}