#include <stdio.h>
#include <math.h>
int sign(double x);
double shaq(double x);
double my_exp(double x);
int funci;
int root_half(double a, double b, double (*f)(double), double eps)
{
double c; int chislo=0;
if (sign(f(a))==sign(f(b))) {printf("Метод не применим\n");return 0;}
do
{
c=(a+b)/2.0;
if(sign(f(c))==0){funci++; printf("Корень: %lf\n",c);break;}
else
if(sign(f(a))==sign(f(c))){printf("Корень: %lf\n",c);a=c;}
else
{printf("Корень: %lf\n",c);b=c;}
chislo++;
}
while ( fabs(b-a)>=eps);
printf("Количество итераций: %d\n Количество Вычислений функций:%d\n",chislo,funci);
return 0;
}
int sign(double x){
if(x>0)return 1;
else
if(x<0)return -1;
else if(x==0)return 0;
return 0;
}
int main(void)
{
double a,b,f(double),eps=0.01;
scanf("%le %lf",&a,&b);
root_half(a,b,&f,eps);
return 0;
}
double f( double x)
{
++funci;
return x*x*x -2*x*x+3;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxtYXRoLmg+CgppbnQgc2lnbihkb3VibGUgeCk7CmRvdWJsZSBzaGFxKGRvdWJsZSB4KTsKZG91YmxlIG15X2V4cChkb3VibGUgeCk7CgppbnQgZnVuY2k7CgppbnQgcm9vdF9oYWxmKGRvdWJsZSBhLCBkb3VibGUgYiwgZG91YmxlICgqZikoZG91YmxlKSwgZG91YmxlIGVwcykKewogICAgZG91YmxlIGM7IGludCBjaGlzbG89MDsKICAgIGlmIChzaWduKGYoYSkpPT1zaWduKGYoYikpKSB7cHJpbnRmKCLQnNC10YLQvtC0INC90LUg0L/RgNC40LzQtdC90LjQvFxuIik7cmV0dXJuIDA7fQogICAgZG8KICAgIHsKICAgICAgICBjPShhK2IpLzIuMDsKICAgICAgICBpZihzaWduKGYoYykpPT0wKXtmdW5jaSsrOyBwcmludGYoItCa0L7RgNC10L3RjDogJWxmXG4iLGMpO2JyZWFrO30KICAgICAgICBlbHNlCiAgICAgICAgICAgIGlmKHNpZ24oZihhKSk9PXNpZ24oZihjKSkpe3ByaW50Zigi0JrQvtGA0LXQvdGMOiAlbGZcbiIsYyk7YT1jO30KICAgICAgICAgICAgZWxzZQogICAgICAgICAgICB7cHJpbnRmKCLQmtC+0YDQtdC90Yw6ICVsZlxuIixjKTtiPWM7fQogICAgICAgIGNoaXNsbysrOwogICAgfQogICAgd2hpbGUgKCBmYWJzKGItYSk+PWVwcyk7CiAgICBwcmludGYoItCa0L7Qu9C40YfQtdGB0YLQstC+INC40YLQtdGA0LDRhtC40Lk6ICVkXG4g0JrQvtC70LjRh9C10YHRgtCy0L4g0JLRi9GH0LjRgdC70LXQvdC40Lkg0YTRg9C90LrRhtC40Lk6JWRcbiIsY2hpc2xvLGZ1bmNpKTsKICAgIHJldHVybiAwOwp9CgppbnQgc2lnbihkb3VibGUgeCl7CiAgICBpZih4PjApcmV0dXJuIDE7CiAgICBlbHNlCiAgICAgICAgaWYoeDwwKXJldHVybiAtMTsKICAgICAgICBlbHNlIGlmKHg9PTApcmV0dXJuIDA7CiAgICByZXR1cm4gMDsKfQoKaW50IG1haW4odm9pZCkKewogICAgZG91YmxlIGEsYixmKGRvdWJsZSksZXBzPTAuMDE7CiAgICBzY2FuZigiJWxlICVsZiIsJmEsJmIpOwogICAgcm9vdF9oYWxmKGEsYiwmZixlcHMpOwogICAgcmV0dXJuIDA7Cn0KCmRvdWJsZSBmKCBkb3VibGUgeCkKewogICAgKytmdW5jaTsKICAgIHJldHVybiB4KngqeCAtMip4KngrMzsKfQo=