6
C/C++ Program for Babylonian method for square root.
program solution
#include <stdio.h>
// Returns the square root of n. Note that the function
float squareRoot(float n)
{
/*We are using n itself as initial approximation This can definitely be improved */
float x = n;
float y = 1;
float e = 0.000001; /* e decides the accuracy level*/
while (x - y > e) {
x = (x + y) / 2;
y = n / x;
}
return x;
}
/* Driver program to test above function*/
int main()
{
int n = 50;
printf("Square root of %d is %f", n, squareRoot(n));
getchar();
}
Output
Square root of 50 is 7.071068
Example:
n = 4 /*n itself is used for initial approximation*/
Initialize x = 4, y = 1
Next Approximation x = (x + y)/2 (= 2.500000),
y = n/x (=1.600000)
Next Approximation x = 2.050000,
y = 1.951220
Next Approximation x = 2.000610,
y = 1.999390
Next Approximation x = 2.000000,
y = 2.000000
Terminate as (x - y) > e now.