我正在创建一个实现java Math类的类,并且我用递归方法覆盖了add方法。我认为我的方法是纯尾递归并且不会抛出堆栈溢出,但是我不能添加10000和10000而不抛出它。
public int add(int a, int b) {
if (b == 0)
return a;
return add(increase(a), decrease(b));
}
增加和减少方法只需要数字,加/减1,然后返回结果。我不认为这应该创建任何堆栈,因为该方法不必等待连续调用完成的任何计算。但我显然错了。有什么想法吗?