• Register
2 votes
97 views

Problem :

I have few years of experience in working with C programming. Now I am preparing for the interview and while preparing for it I came to below question for which I don’t have any working code.

C program to find square root of a number without using sqrt function”.

Can somebody help me in answering above question?

8 5 2
3,230 points

1 Answer

2 votes

Solution :

This is very tricky question for any programmer. I have also asked this question in many interviews but most of the time I got wrong answers from the candidates. So I am trying to answer it for you.

Below is the code which needs only 6 iterations to meet to the maximum precision for the double numbers:

#include <math.h>
double SquareRoot(double x) {
    if (x <= 0)
        return 0;       // if in case the negative number throws the exception
    int exp = 0;
    x = frexp(x, &exp); // extract the binary exponent from the x
    if (exp & 1) {      // to get the exponent to be even
        exp--;
        x *= 2;
    }
    double y = (1+x)/2; // this is our first approximation
    double z = 0;
    while (y != z) {    // we are compare doubles
        z = y;
        y = (y + x/y) / 2;
    }
    return ldexp(y, exp/2); //we can have  multiply answer by 2^(exp/2)
}
8 4
5,680 points

Related questions

0 votes
1 answer 5 views
1 vote
1 answer 29 views
29 views
Problem: I want to find a square root value of an integer number in a C++ program. Well, the condition is that, I can&rsquo;t use the sqrt() function in my program. Let say, the given number is 16, and output should produce 4. If the given number is not a perfect ... Is it possible to do so as per my requirement? If possible, please help me to find the way. I look forward to your answers. Thanks.
asked May 3 Gavin 15.3k points
0 votes
1 answer 104 views
0 votes
1 answer 39 views
1 vote
1 answer 12 views
12 views
Problem: Hello Kodlogs, I am a college student. I recently started learning computer programming using the Python programming language. I was solving some mathematical operations through Python programs. I&rsquo;ve stuck to solve a problem regarding square-root. In my program, I am ... an integer number? If you share the tip with me it would really help me a lot. Thanks for your kind concern.
asked Jul 11 adamSw 11.3k points