この奇妙な種類のエラーがあります。
示されているように、BigInteger クラスを使用して基本的なユークリッド アルゴリズムを実装しようとしています。実行するとStackoverFlowErrorがスローされますが、デバッグすると正しく実行され、正しい答えが得られます。
デバッグと通常の実行中の違いを真剣に理解していません。
static BigInteger gcd(BigInteger a, BigInteger b) {
if (a.equals(BigInteger.ZERO)) {
return b;
} else if (b.equals(BigInteger.ZERO)) {
return a;
}
BigInteger max = a.max(b);
BigInteger min = a.min(b);
return gcd(max.subtract(min), min);
}