// Function to compute square root using Newton's method. // Michael Rothstein // 2/3/2014 #include using std::cin; using std::cout; using std::endl; const double TOLERANCE = 1.0E-7; double absval(double); double sqrt(double A){ if ( A< 0 ) return -1; double oldguess = 0.0; double newguess = 1.0; while(absval(oldguess-newguess)> A*TOLERANCE){ oldguess = newguess; newguess = (oldguess + A/oldguess)/2.0; cout << newguess << endl; } return newguess; } double absval(double x){ return (x<0?-x:x); } #ifdef TEST int main(){ while(1){ cout << "Input a number to test: "; double x; cin >> x; if ( x < 0 ) break; cout << "Square root of " << x << " is " << sqrt(x) << endl; } } #endif