J'ai ce genre d'erreur bizarre. J'essaye d'implémenter l'algorithme euclidien de base en utilisant la classe BigInteger comme montré. Quand je l'exécute, il lance StackoverFlowError, alors que si je le débogue, il fonctionne correctement et me donne la bonne réponse.StackoverflowError
Je ne comprends pas sérieusement la différence lors du débogage et de l'exécution normale.
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);
}
La différence est probablement dans la taille de la pile - essayez http://stackoverflow.com/questions/2127217/java-stack-overflow-error-how-to-increase-the-stack-size-in-eclipse ou http://stackoverflow.com/questions/3700459/how-to-increase-to-java-stack-size – maialithar
Sur quelles entrées échoue-t-il? – NPE
Quelles sont vos entrées de départ? –