打印通过递归爬楼梯的总方式

时间:2015-11-11 00:13:31

标签: java recursion

我想编写代码,打印出一步一步,一步两步或一步三步爬楼梯的方式总数。

我的代码是

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);
    }

但我的代码并没有给我正确的输出。 还有另一种方式吗?

1 个答案:

答案 0 :(得分:1)

这里的问题是你的基本情况没有意义。如果剩下0步,只有一种方法可以攀爬。你的基础案例说明如果有0种方法可以攀爬,那么就有0种方式。

此外,在这种情况下,您不需要else语句来调用递归的情况。如果没有在顶部调用return语句,那么该方法应该到达那里。

int climb(int a){       
   if(a <= 2)          
       return a;       
   return climb(a-1)+climb(a-2);
}

这是一次两步的代码。你一次找出了3个步骤...