#include using namespace std; bool close(const double a, const double b) { return fabs(a - b) < 0.000001; } double binchop(const double q, const double first, const double last) { if (first > last) return -1; const double midpos = (first + last) / 2; const double midval = midpos * midpos; cout << first << " " << midpos << " " << last << " " << midpos << " " << midval << "\n"; if (close(q, midval)) return midpos; else if (q < midval) return binchop(q, first, midpos); else return binchop(q, midpos, last); } int main() { cout << "number: "; const double n = read_double(); const double s = binchop(n, 0, n + 1); cout << setprecision(16) << s << " squared is " << s * s << "\n"; }