#include <bits/stdc++.h>
using namespace std;
// f(x) = 3x - cos(x) - 1
double f(double x) {
return 3*x - cos(x) - 1;
}
signed main() {
ios_base::sync_with_stdio(false); cin.tie(NULL);
int iter = 0, max_iter = 100;
double tol = 0.0001;
cout << "Iter\tRoot\n";
// initial guesses
double x0 = 0, x1 = 1, x2;
do {
x2 = (x0*f(x1) - x1*f(x0)) / (f(x1) - f(x0));
cout << ++iter << "\t" << x2 << endl;
if (fabs(f(x2)) < tol) {
break;
}
x0 = x1;
x1 = x2;
if (iter > max_iter) {
cout << "Max iterations reached\n";
break;
}
} while (fabs(x1 - x0) > tol);
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Ci8vIGYoeCkgPSAzeCAtIGNvcyh4KSAtIDEKZG91YmxlIGYoZG91YmxlIHgpIHsKICAgIHJldHVybiAzKnggLSBjb3MoeCkgLSAxOwp9CgpzaWduZWQgbWFpbigpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyBjaW4udGllKE5VTEwpOwogICAgaW50IGl0ZXIgPSAwLCBtYXhfaXRlciA9IDEwMDsKICAgIGRvdWJsZSB0b2wgPSAwLjAwMDE7CiAgICBjb3V0IDw8ICJJdGVyXHRSb290XG4iOwogICAgLy8gaW5pdGlhbCBndWVzc2VzCiAgICBkb3VibGUgeDAgPSAwLCB4MSA9IDEsIHgyOwogICAgZG8gewogICAgICAgIHgyID0gKHgwKmYoeDEpIC0geDEqZih4MCkpIC8gKGYoeDEpIC0gZih4MCkpOwogICAgICAgIGNvdXQgPDwgKytpdGVyIDw8ICJcdCIgPDwgeDIgPDwgZW5kbDsKICAgICAgICBpZiAoZmFicyhmKHgyKSkgPCB0b2wpIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHgwID0geDE7CiAgICAgICAgeDEgPSB4MjsKICAgICAgICBpZiAoaXRlciA+IG1heF9pdGVyKSB7CiAgICAgICAgICAgIGNvdXQgPDwgIk1heCBpdGVyYXRpb25zIHJlYWNoZWRcbiI7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0gd2hpbGUgKGZhYnMoeDEgLSB4MCkgPiB0b2wpOwp9