In: Computer Science
. (This is a version of Programming Project 2.1 from Chapter 2.)
The Babylonian algorithm to compute the square root of a positive number n is as follows: 1. Make a guess at the answer (you can pick n/2 as your initial guess).
2. Compute r = n / guess.
3. Set guess = (guess +r) / 2.
4. Go back to step 2 until the last two guess values are within 1% of each other.
Write a JAVA program that inputs a double for n, iterates through the Babylonian algorithm until the guess is within 1% of the previous guess and outputs the answer as a double to two decimal places. Your answer should be accurate even for large values of n
import java.util.Scanner;
public class Babylonia {
public static void main(String[] args) {
int n;
double guess;
double r;
Scanner input = new Scanner(System.in);
System.out.println("This program estimates square roots.");
System.out.print("Enter an integer to estimate the square root of: ");
n = input.nextInt();
System.out.println();
guess = n / 2.0;
r = 0;
double last_guess = guess;
do {
r = n / guess;
guess = (guess + r) / 2;
last_guess = guess;
System.out.println("Current guess: " + guess);
}
while (((guess - last_guess) / last_guess) > 0.01);
System.out.printf("The estimated square root of %d is %4.2f", n, guess);
}
}
Output Screenshot of above code