#include "library.h" double get_sqrt(double x, double mins, double maxs) { const double mid = (mins+maxs)/2.0; const double square = mid * mid; // to see how quickly it converges // cout << "min = " << setprecision(20) << mins << ", max = " << maxs << "\n"; if (maxs-mins < 0.00000001) // not a very reliable test return mid; if (square > x) return get_sqrt(x, mins, mid); else return get_sqrt(x, mid, maxs); } double square_root(double x) { return get_sqrt(x, 0, x+1); } void test(double num) { const double sqt = square_root(num); cout << "The square root of " << num << " is about " << sqt << " or so.\n"; } void main() { test(10); test(2); test(4); test(64); test(200); }