我试图创建代码来找到三个用户输入数字的GCD。我的目标是用输入数字调用该方法,除以初始化为1的q,只有余数为零才记录q,然后确定它是否大于或等于最小数目,如果不是,则增加q和回忆的方法,但如果是我想打印出最大记录的最大q,我做错了什么?我不断收到堆栈溢出错误。递归困境
public static int recursiveMethod (int x, int y, int z, int q)
{
int largestVar;
int xRes = x % q;
int yRes = y % q;
int zRes = z % q;
if (xRes==0 && yRes ==0 && zRes==0) {
largestVar = q;
if (q >= x && q >= y && q >= z)
{
return largestVar;
}
}
else {
q++;
}
return recursiveMethod(x, y, z, q);
您可以执行多少次递归存在限制,这受限于堆栈深度。所以我建议你检查一下你的算法,如果有必要的话把它变成一个迭代的一个 –