#include "library.h" #include bool close_enough(const double a, const double b) { const double diff = fabs(a - b) / max(a, b); if (diff < 1.0e-9) return true; return false; } double square_root(const double n, const double min, const double max) { // cout << "min = " << setprecision(20) << min << ", max = " << setprecision(20) << max << "\n"; if (min > max) return -1; const double middle = (min + max) / 2; const double found = middle * middle; if (close_enough(n, found)) return middle; if (n < found) return square_root(n, min, middle); return square_root(n, middle, max); } void main() { cout << "Enter a square: "; const double n = read_double(); const double s = square_root(n, 0, n + 1); cout << "The square root of " << n << " is " << setprecision(20) << s << "\n"; cout << "correct answer is " << setprecision(20) << sqrt(n) << "\n"; }