Я написал код, чтобы получить квадратный корень, используя вавилонский метод.Вавилонский метод рекурсии исключение: stackOverFlow
Прошу указать номер пользователя, затем спросите пользователя.
public class JanghyupLee_H02 {
private double number;
private double guess;
public static void main(String[] args) {
// TODO Auto-generated method stub
String input;
Scanner userInput = new Scanner(System.in);
JanghyupLee_H02 AR = new JanghyupLee_H02();
System.out.println("Type a number : ");
input = userInput.next();
if (input.equals("0") || input.equalsIgnoreCase("exit") || input.equalsIgnoreCase("no")) {
System.exit(0);
} else {
AR.setNumber(Integer.parseInt(input));
}
System.out.println("Type your guess : ");
input = userInput.next();
if (input.equals("0") || input.equalsIgnoreCase("exit") || input.equalsIgnoreCase("no")) {
System.exit(0);
} else {
AR.setGuess(Double.parseDouble(input));
double newGuess = AR.getGuess();
AR.testGuess(newGuess);
}
}
public double getNumber() {
return number;
}
public void setNumber(double inputNumber) {
this.number = inputNumber;
}
public double getGuess() {
return guess;
}
public void setGuess(double guessNumber) {
this.guess = guessNumber;
}
public double testGuess(double guess) {
double guessAcurracy = (getNumber() - (getGuess() * getGuess()));
//exeption error here
if ((guessAcurracy == 0) && (guessAcurracy <= 0.000005)) {
System.out.println(guess);
return guess;
} else {
setGuess((((0.5) * (getGuess() + getNumber()/getGuess()))));
System.out.println(guess);
System.out.println("---------------------");
return testGuess(getGuess());
}
}
}
В основном, guessAcuraccy является вычитание первого входа и два в
сигнал, подаваемый на. (Так что ответ ближе к входному номеру)
У меня есть ошибка исключения там,
, даже если я написал || вместо & &. (на самом деле, || это не идет рекурсивное)
Исключение в потоке "главный" java.lang.StackOverflowError в sun.misc.FloatingDecimal $ BinaryToASCIIBuffer.dtoa (FloatingDecimal. Java: 431) в sun.misc.FloatingDecimal $ BinaryToASCIIBuffer.access $ 100 (FloatingDecimal.java:259)
я получаю эти ошибки исключения,
, пожалуйста, дайте мне знать, что здесь не так.
Вы пробовали преодолеть это с помощью отладчика? Удивительно, что вы можете это сделать. – pjs