#include <stdio.h>
#include <math.h>
 
double f(double x) {
    double coe[] = {1, 0, -4, -9};
    double result = coe[0];
    for (int i = 1; i < 4; i++)
        result = result * x + coe[i];
    return result;
}
 
int main() {
    double x1, x2, x3, f1, f2, f3;
    int step = 1;
    printf("Enter the value of x1: ");
    scanf("%lf", &x1);
    printf("Enter the value of x2: ");
    scanf("%lf", &x2);
 
    printf("\n   Iteration\t      x1\t        x2\t        x3\t      f(x1)\t      f(x2)\n");
    printf("   --------------------------------------------------------------------------\n");
 
    f1 = f(x1);
    f2 = f(x2);
 
    do {
        x3 = (f2 * x1 - f1 * x2) / (f2 - f1);
        f3 = f(x3);
        printf("%8d\t%12.6lf\t%10.6lf\t%10.6lf\t%10.6lf\t%10.6lf\n", step, x1, x2, x3, f1, f2);
        if (fabs(f3) < 0.00001)
            break;
        x1 = x2;
        f1 = f2;
        x2 = x3;
        f2 = f3;
        step++;
    } while (step <= 8);
 
    printf("   --------------------------------------------------------------------------\n");
    printf("\n   Approximate root = %.6lf\n", x3);
    return 0;
}
 
				I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxtYXRoLmg+Cgpkb3VibGUgZihkb3VibGUgeCkgewogICAgZG91YmxlIGNvZVtdID0gezEsIDAsIC00LCAtOX07CiAgICBkb3VibGUgcmVzdWx0ID0gY29lWzBdOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPCA0OyBpKyspCiAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICogeCArIGNvZVtpXTsKICAgIHJldHVybiByZXN1bHQ7Cn0KCmludCBtYWluKCkgewogICAgZG91YmxlIHgxLCB4MiwgeDMsIGYxLCBmMiwgZjM7CiAgICBpbnQgc3RlcCA9IDE7CiAgICBwcmludGYoIkVudGVyIHRoZSB2YWx1ZSBvZiB4MTogIik7CiAgICBzY2FuZigiJWxmIiwgJngxKTsKICAgIHByaW50ZigiRW50ZXIgdGhlIHZhbHVlIG9mIHgyOiAiKTsKICAgIHNjYW5mKCIlbGYiLCAmeDIpOwoKICAgIHByaW50ZigiXG4gICBJdGVyYXRpb25cdCAgICAgIHgxXHQgICAgICAgIHgyXHQgICAgICAgIHgzXHQgICAgICBmKHgxKVx0ICAgICAgZih4MilcbiIpOwogICAgcHJpbnRmKCIgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIik7CgogICAgZjEgPSBmKHgxKTsKICAgIGYyID0gZih4Mik7CgogICAgZG8gewogICAgICAgIHgzID0gKGYyICogeDEgLSBmMSAqIHgyKSAvIChmMiAtIGYxKTsKICAgICAgICBmMyA9IGYoeDMpOwogICAgICAgIHByaW50ZigiJThkXHQlMTIuNmxmXHQlMTAuNmxmXHQlMTAuNmxmXHQlMTAuNmxmXHQlMTAuNmxmXG4iLCBzdGVwLCB4MSwgeDIsIHgzLCBmMSwgZjIpOwogICAgICAgIGlmIChmYWJzKGYzKSA8IDAuMDAwMDEpCiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIHgxID0geDI7CiAgICAgICAgZjEgPSBmMjsKICAgICAgICB4MiA9IHgzOwogICAgICAgIGYyID0gZjM7CiAgICAgICAgc3RlcCsrOwogICAgfSB3aGlsZSAoc3RlcCA8PSA4KTsKCiAgICBwcmludGYoIiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKICAgIHByaW50ZigiXG4gICBBcHByb3hpbWF0ZSByb290ID0gJS42bGZcbiIsIHgzKTsKICAgIHJldHVybiAwOwp9Cg==