ユーザーが入力した 3 つの数値の 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);