diff options
Diffstat (limited to 'mysqrt.cpp')
-rw-r--r-- | mysqrt.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
@@ -5,18 +5,20 @@ using namespace std; double mysqrt(double x) { bool goodenough = false; - double guess; - double last = 0.0; + double lastGuess, nextGuess; + + lastGuess = x / 10.0; if (x <= 0) return x; while (!goodenough) { - guess = (last + (x / last)) / 2.0; - last = guess; + + nextGuess = (lastGuess + (x / lastGuess)) / 2.0; + lastGuess = nextGuess; - goodenough = abs(guess - last) <= 0.000000001; + goodenough = abs(nextGuess - lastGuess) <= 0.000000000001; } - return guess; + return nextGuess; } |