堆栈溢出尾递归

时间:2015-11-01 19:20:37

标签: java tail-recursion

为什么我会收到堆栈溢出异常?这不是一个尾递归函数吗?

public static int tailFact(int n, int mult) {
    if(n == 0) {
        return mult;
    }else {
        return tailFact(n-1, n*mult);
    }
}

public static int factT(int n) {
    return tailFact(n, 1);
}

public static void main(String[] args) {            
            factT(100000);
}


/*Exception in thread "main" java.lang.StackOverflowError

  at test3.Test.tailFact(Test.java:13)
  at test3.Test.tailFact(Test.java:13)
  ...
*/

1 个答案:

答案 0 :(得分:4)

Java不支持尾递归。