Ich habe ein Problem mit einer Methode, die versucht, die Quadratwurzel der Zahl zu finden. Das vorherige G ist eine zufällig generierte Zahl. Die Nummer ist die tatsächliche Anzahl der Quadratwurzeln. Ich bekomme einen Stapelüberlauffehler. Ich verstehe warum, weil ich die nextGuess Variable nicht aktualisiere. Ich frage mich, was ich der FindTheRoot-Methode hinzufügen sollte, um dies zu stoppen. Außerdem mache ich das rekursiv.Rekursiver Quadratwurzelsucher
public static void main(String[] args) {
int srootArray[] = {9, 17, 25, 37, 49, 55, 999};
Random randomGuess = new Random();
for (int index = 0; index < srootArray.length; index++)
{
int previousGuess = randomGuess.nextInt(srootArray[index] + 1);
System.out.println("Number: " + srootArray[index] + "... " +
"First Guess: " + previousGuess);
FindTheRoot(previousGuess, srootArray[index]);
System.out.println("--------------------------------------------
------");
}
}
public static double FindTheRoot(double previousG, int number)
{
double errorMargin = 0.00001;
double nextGuess = (previousG + number/previousG)/2;
if (nextGuess < errorMargin)
return nextGuess;
else
{
System.out.printf("%S%.4f%n", "Next Guess: " , nextGuess);
FindTheRoot(nextGuess, number);
}
return nextGuess;
}
}
'if (nextGuess
luckydog32