#include <iostream>
using namespace std;
int main() {
double a = 1, b = 2, c, eps = 1e-9;
int cnt = 0;
while (b - a > eps) {
cnt++;
c = (a + b) / 2;
double fa = a * a * a - a - 2;
double fc = c * c * c - c - 2;
double fb = b * b * b - b - 2;
// if ((fa > 0 && fc < 0) || (fa < 0 && fc > 0))
if (fa * fc < 0) {
b = c;
} else {
a = c;
}
}
cout << "root ~ " << c << endl;
double error = c * c * c - c - 2;
cout << "error = " << error << endl;
cout << "iterations = " << cnt << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CgkKCWRvdWJsZSBhID0gMSwgYiA9IDIsIGMsIGVwcyA9IDFlLTk7CglpbnQgY250ID0gMDsKCQoJd2hpbGUgKGIgLSBhID4gZXBzKSB7CgkJCgkJY250Kys7CgkJYyA9IChhICsgYikgLyAyOwoJCQoJCWRvdWJsZSBmYSA9IGEgKiBhICogYSAtIGEgLSAyOwoJCWRvdWJsZSBmYyA9IGMgKiBjICogYyAtIGMgLSAyOwoJCWRvdWJsZSBmYiA9IGIgKiBiICogYiAtIGIgLSAyOwoJCQoJCS8vIGlmICgoZmEgPiAwICYmIGZjIDwgMCkgfHwgKGZhIDwgMCAmJiBmYyA+IDApKQoJCWlmIChmYSAqIGZjIDwgMCkgewoJCQliID0gYzsKCQl9IGVsc2UgewoJCQlhID0gYzsKCQl9CgkJCgl9CgkKCWNvdXQgPDwgInJvb3QgfiAiIDw8IGMgPDwgZW5kbDsKCWRvdWJsZSBlcnJvciA9IGMgKiBjICogYyAtIGMgLSAyOwoJY291dCA8PCAiZXJyb3IgPSAiIDw8IGVycm9yIDw8IGVuZGw7Cgljb3V0IDw8ICJpdGVyYXRpb25zID0gIiA8PCBjbnQgPDwgZW5kbDsKCQoJcmV0dXJuIDA7CgkKfQ==