假设你正在爬楼梯,需要n步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部?
分析:一次只能爬一步或者两步,所以走i步可由走i-1步的方法数和走i-2步的方法数相加获得;
设dp[i]为走i步的方法数目,则dp[i]=dp[i-1]+dp[i-2];
// 递归调用
public int fib01(int n) {
if (n == 1 || n == 2)
total = n;
else
total = fib01(n - 2) + fib01(n - 1);
return total;
}
// 三目运算符
public int fib02(int n) {
return (n == 1 || n == 2) ? n : fib02(n - 2) + fib02(n - 1);
}
网友评论