在书中,我遇到了以下问题:
给定 N 级楼梯,如果您一次使用 1、2 或 3 级台阶,您可以爬多少种方式?
以下是该书给出的代码:
int countWays(int n){
if(n<0)
return 0;
if(n == 0)
return 1;
else return countWays(n-1) + countWays(n-2) + countWays(n-3);
}
在理解这段代码时,我有以下担忧:
我不明白为什么 n=0 会返回 1。如果有 0 个台阶,那么显然我们不必爬任何台阶,应该返回 0。
对于 n=3 函数返回 4 但我只能看到 3 种情况,即 (1,1,1)、(1,2)、(3)。