ABSOLUTE JAVA

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

 

0 0

Discussions

Post the discussion improve the above solution.