【发布时间】:2013-01-11 12:45:57
【问题描述】:
我正在尝试创建代码来查找三个用户输入数字的 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);
【问题讨论】:
-
递归次数是有限制的,这受堆栈深度的限制。所以我建议你检查你的算法,如果有必要把它变成一个迭代算法
标签: java