# Absolute Java

 Authors: Walter Savitch ,kenrick Mock ISBN: 9780132830317 Edition: 5
 Chapter: Flow Of Control Exercise: Programming Projects Question: 1

### Question by Anonymous on 16 Mar, 2019 at 05:58 AM

(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 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.

### Answer by Srntr on 16 Mar, 2019 at 05:58 AM

Program:

``````// BabylonianAlgorithm.java
import java.util.Scanner;
public class BabylonianAlgorithm
{
public static void main(String[] args)
{
Scanner keyboard = new Scanner(System.in);

double n;
double guess;
double r;
double previousGuess;
double diff;

System.out.print("Enter a value for n: ");
n = keyboard.nextDouble();

guess = n / 2;

do
{
r = n / guess;
previousGuess = guess;
guess = (guess + r) / 2;
diff = 	(previousGuess - guess) / (0.01 * previousGuess);
}while(diff > 0);

System.out.printf(
"The square root of %.2f is approximately: %.2f\n", n, guess);

keyboard.close();
}
}``````

Output:

``````Enter a value for n: 225
The square root of 225.00 is approximately: 15.00``````

### Discussions

Post the discussion improve the above solution.