我对以下算法有疑问,
public static int sum(int x){
if (x == 0 || x==1)
{
return x;
}
else
return x + sum(x-1);
}
public static double factorial(int x)
{
if (x==0 || x==1)
{
return 1;
}
else
{
return (double)(x*factorial(x-1));
}
}
我运行了 sum (10,000) 和 factorial(10,000),运行 factorial(10,000) 但没有 sum(10,000) 时出现堆栈溢出错误。这是为什么?堆栈内存中的行数(函数调用)不一样吗?