#include <math.h>
#include <stdio.h>
#include <stdlib.h>
const long double PI = acos(-1);
const long int iters = 200;
double func(double x)
{
return (sin(x) + 1 - log(x));
}
double rad2ang(double rad)
{
return 180*rad/PI;
}
double find(double x0, double x1, double eps)
{
double left = x0, right = x1, x, f;
int iter = 0;
printf("x0 = %lf x1 = %lf ", x0, x1);
do {
x = (left + right) / 2;
f = func(x);
if (f < 0)
right = x;
else
left = x;
iter++;
} while (fabs(f) > eps && iter < iters);
printf("%d итераций\n", iter);
return x;
}
int main()
{
const long double eps = 1e-5;
system("chcp 1251");
system("cls");
printf("%lf ", rad2ang(find(eps, 100.0, eps)));
getchar();
return 0;
}
I2luY2x1ZGUgPG1hdGguaD4KI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCmNvbnN0IGxvbmcgZG91YmxlIFBJID0gYWNvcygtMSk7CmNvbnN0IGxvbmcgaW50IGl0ZXJzID0gMjAwOwoKZG91YmxlIGZ1bmMoZG91YmxlIHgpCnsKICAgIHJldHVybiAoc2luKHgpICsgMSAtIGxvZyh4KSk7Cn0KCmRvdWJsZSByYWQyYW5nKGRvdWJsZSByYWQpCnsKICAgIHJldHVybiAxODAqcmFkL1BJOwp9Cgpkb3VibGUgZmluZChkb3VibGUgeDAsIGRvdWJsZSB4MSwgZG91YmxlIGVwcykKewogICAgZG91YmxlIGxlZnQgPSB4MCwgcmlnaHQgPSB4MSwgeCwgZjsKICAgIGludCBpdGVyID0gMDsKICAgIHByaW50ZigieDAgPSAlbGYgeDEgPSAlbGYgIiwgeDAsIHgxKTsKICAgIGRvIHsKICAgICAgICB4ID0gKGxlZnQgKyByaWdodCkgLyAyOwogICAgICAgIGYgPSBmdW5jKHgpOwogICAgICAgIGlmIChmIDwgMCkKICAgICAgICAgICAgcmlnaHQgPSB4OwogICAgICAgIGVsc2UKICAgICAgICAgICAgbGVmdCA9IHg7CiAgICAgICAgaXRlcisrOwogICAgfSB3aGlsZSAoZmFicyhmKSA+IGVwcyAmJiBpdGVyIDwgaXRlcnMpOwogICAgcHJpbnRmKCIlZCDQuNGC0LXRgNCw0YbQuNC5XG4iLCBpdGVyKTsKICAgIHJldHVybiB4Owp9CgppbnQgbWFpbigpCnsKICAgIGNvbnN0IGxvbmcgZG91YmxlIGVwcyA9IDFlLTU7CiAgICBzeXN0ZW0oImNoY3AgMTI1MSIpOwogICAgc3lzdGVtKCJjbHMiKTsKICAgIHByaW50ZigiJWxmICIsIHJhZDJhbmcoZmluZChlcHMsIDEwMC4wLCBlcHMpKSk7CiAgICBnZXRjaGFyKCk7CiAgICByZXR1cm4gMDsKfQo=