我想编写代码,打印出一步一步,一步两步或一步三步爬楼梯的方式总数。
我的代码是
public static int math(int n ){
if (n==0){
return 0;
}
else if (n==1){
return 1;
}
else return math(n-1)+math(n-2);
}
但我的代码并没有给我正确的输出。 还有另一种方式吗?
答案 0 :(得分:1)
这里的问题是你的基本情况没有意义。如果剩下0步,只有一种方法可以攀爬。你的基础案例说明如果有0种方法可以攀爬,那么就有0种方式。
此外,在这种情况下,您不需要else语句来调用递归的情况。如果没有在顶部调用return语句,那么该方法应该到达那里。
int climb(int a){
if(a <= 2)
return a;
return climb(a-1)+climb(a-2);
}
这是一次两步的代码。你一次找出了3个步骤...