#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;
double tol = 0.0001;
cout << "Iter\t" << "Root\n";
// Root lies between [0..1]
double a = 0, b = 1;
double c, prev = 0;
do {
c = (a * f(b) - b * f(a)) / (f(b) - f(a));
cout << ++iter << "\t" << c << endl;
if (fabs(f(c)) < tol) {
break;
}
if (f(c) * f(a) < 0) {
b = c;
} else {
a = c;
}
if (fabs(c - prev) < tol) {
break;
}
prev = c;
} while (fabs(b - a) > tol);
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Ci8vIGYoeCkgPSAzeCAtIGNvcyh4KSAtIDEKZG91YmxlIGYoZG91YmxlIHgpIHsKICAgIHJldHVybiAzKnggLSBjb3MoeCkgLSAxOwp9CgpzaWduZWQgbWFpbigpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyAgY2luLnRpZShOVUxMKTsKICAgIGludCBpdGVyID0gMDsKICAgIGRvdWJsZSB0b2wgPSAwLjAwMDE7CiAgICBjb3V0IDw8ICJJdGVyXHQiIDw8ICJSb290XG4iOyAKICAgIAogICAgLy8gUm9vdCBsaWVzIGJldHdlZW4gWzAuLjFdCiAgICBkb3VibGUgYSA9IDAsIGIgPSAxOwogICAgZG91YmxlIGMsIHByZXYgPSAwOwogICAgZG8gewogICAgICAgIGMgPSAoYSAqIGYoYikgLSBiICogZihhKSkgLyAoZihiKSAtIGYoYSkpOwogICAgICAgIGNvdXQgPDwgKytpdGVyIDw8ICJcdCIgPDwgYyA8PCBlbmRsOwogICAgICAgIGlmIChmYWJzKGYoYykpIDwgdG9sKSB7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KCiAgICAgICAgaWYgKGYoYykgKiBmKGEpIDwgMCkgewogICAgICAgICAgICBiID0gYzsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBhID0gYzsKICAgICAgICB9CiAgICAgICAgaWYgKGZhYnMoYyAtIHByZXYpIDwgdG9sKSB7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KCiAgICAgICAgcHJldiA9IGM7CgogICAgfSB3aGlsZSAoZmFicyhiIC0gYSkgPiB0b2wpOwoKfQ==