我試圖創建代碼來找到三個用戶輸入數字的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);
您可以執行多少次遞歸存在限制,這受限於堆棧深度。所以我建議你檢查一下你的算法,如果有必要的話把它變成一個迭代的一個 –