我有這種奇怪的錯誤。StackoverflowError
我試圖使用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);
}
差異可能是堆棧大小 - 嘗試http://stackoverflow.com/questions/2127217/java-stack-overflow-error-how-to-increase-the-stack-size-in-eclipse或http:/ /stackoverflow.com/questions/3700459/how-to-increase-to-java-stack-size – maialithar
哪些輸入失敗? – NPE
你最初的投入是什麼? –