#include <iostream>
#include <cmath>
using namespace std;
// Definicja funkcji
double f(double x) {
return x*x*x - x - 2;
}
int main() {
double a, b, c;
double epsilon = 1e-6; // dokładność
cout << "Podaj przedzial [a, b]: ";
cin >> a >> b;
if (f(a) * f(b) >= 0) {
cout << "Funkcja nie zmienia znaku w tym przedziale." << endl;
return 1;
}
do {
c = (a + b) / 2.0;
if (f(c) == 0.0)
break;
else if (f(a) * f(c) < 0)
b = c;
else
a = c;
} while (fabs(b - a) > epsilon);
cout << "Przyblizone miejsce zerowe: " << c << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy8gRGVmaW5pY2phIGZ1bmtjamkKZG91YmxlIGYoZG91YmxlIHgpIHsKICAgIHJldHVybiB4KngqeCAtIHggLSAyOwp9CgppbnQgbWFpbigpIHsKICAgIGRvdWJsZSBhLCBiLCBjOwogICAgZG91YmxlIGVwc2lsb24gPSAxZS02OyAvLyBkb2vFgmFkbm/Fm8SHCgogICAgY291dCA8PCAiUG9kYWogcHJ6ZWR6aWFsIFthLCBiXTogIjsKICAgIGNpbiA+PiBhID4+IGI7CgogICAgaWYgKGYoYSkgKiBmKGIpID49IDApIHsKICAgICAgICBjb3V0IDw8ICJGdW5rY2phIG5pZSB6bWllbmlhIHpuYWt1IHcgdHltIHByemVkemlhbGUuIiA8PCBlbmRsOwogICAgICAgIHJldHVybiAxOwogICAgfQoKICAgIGRvIHsKICAgICAgICBjID0gKGEgKyBiKSAvIDIuMDsKCiAgICAgICAgaWYgKGYoYykgPT0gMC4wKQogICAgICAgICAgICBicmVhazsKICAgICAgICBlbHNlIGlmIChmKGEpICogZihjKSA8IDApCiAgICAgICAgICAgIGIgPSBjOwogICAgICAgIGVsc2UKICAgICAgICAgICAgYSA9IGM7CgogICAgfSB3aGlsZSAoZmFicyhiIC0gYSkgPiBlcHNpbG9uKTsKCiAgICBjb3V0IDw8ICJQcnp5Ymxpem9uZSBtaWVqc2NlIHplcm93ZTogIiA8PCBjIDw8IGVuZGw7CgogICAgcmV0dXJuIDA7Cn0KCg==