#include <iostream>
#include <cmath>
using namespace std;
double f(double x) {
return x * x * x - x - 2;
}
int main() {
double a = 1, b = 2, c;
int iterations = 20;
if (f(a) * f(b) >= 0) {
cout << "Invalid interval!" << endl;
return 0;
}
for (int i = 0; i < iterations; i++) {
c = (a + b) / 2;
if (f(c) == 0.0) break;
else if (f(a) * f(c) < 0) b = c;
else a = c;
}
cout << "Root = " << c << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpkb3VibGUgZihkb3VibGUgeCkgewogICAgcmV0dXJuIHggKiB4ICogeCAtIHggLSAyOyAKfQoKaW50IG1haW4oKSB7CiAgICBkb3VibGUgYSA9IDEsIGIgPSAyLCBjOwogICAgaW50IGl0ZXJhdGlvbnMgPSAyMDsKCiAgICBpZiAoZihhKSAqIGYoYikgPj0gMCkgewogICAgICAgIGNvdXQgPDwgIkludmFsaWQgaW50ZXJ2YWwhIiA8PCBlbmRsOwogICAgICAgIHJldHVybiAwOwogICAgfQoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRlcmF0aW9uczsgaSsrKSB7CiAgICAgICAgYyA9IChhICsgYikgLyAyOwogICAgICAgIGlmIChmKGMpID09IDAuMCkgYnJlYWs7CiAgICAgICAgZWxzZSBpZiAoZihhKSAqIGYoYykgPCAwKSBiID0gYzsKICAgICAgICBlbHNlIGEgPSBjOwogICAgfQoKICAgIGNvdXQgPDwgIlJvb3QgPSAiIDw8IGMgPDwgZW5kbDsKICAgIHJldHVybiAwOwp9Cg==