尾递归堆栈溢出
Stack overflow with 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.WhosebugError
at test3.Test.tailFact(Test.java:13)
at test3.Test.tailFact(Test.java:13)
...
*/
Java不支持尾递归。
为什么会出现堆栈溢出异常?这不是尾递归函数吗?
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.WhosebugError
at test3.Test.tailFact(Test.java:13)
at test3.Test.tailFact(Test.java:13)
...
*/
Java不支持尾递归。