#include <stdio.h>
#include <math.h>
#define EPS 0.00001
double ln(double x) {
}
double f(double x, double a) {
}
double divideEtImpera(double lo, double hi, double a) {
if(fabs(lo
- hi
) < EPS
) {
return (lo + hi) / 2;
} else {
double m = (lo + hi) / 2;
if( ( f(lo, a) * f(m, a) ) < 0) return divideEtImpera(lo, m, a);
else
return divideEtImpera(m, hi, a);
}
}
double LN(double a) {
return divideEtImpera(0, a, a);
}
int main(int argc, char const *argv[])
{
int a;
printf("ln(%d) = %.5f\n", a
, LN
(a
)); //built-in function
printf("ln(%d) = %.5f - built-in function c", a
, ln
(a
)); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxtYXRoLmg+CiNkZWZpbmUgRVBTIDAuMDAwMDEKCmRvdWJsZSBsbihkb3VibGUgeCkgewoKCSAgIHJldHVybiBsb2coeCk7Cn0KCmRvdWJsZSBmKGRvdWJsZSB4LCBkb3VibGUgYSkgewoKICAgICAgIHJldHVybiBleHAoeCkgLSBhOwp9Cgpkb3VibGUgZGl2aWRlRXRJbXBlcmEoZG91YmxlIGxvLCBkb3VibGUgaGksIGRvdWJsZSBhKSB7CiAKICAgICAgIGlmKGZhYnMobG8gLSBoaSkgPCBFUFMpIHsKCiAgICAgICAgICByZXR1cm4gKGxvICsgaGkpIC8gMjsKCiAgICAgICB9IGVsc2UgewoKICAgICAgIAkgICAgICBkb3VibGUgbSA9IChsbyArIGhpKSAvIDI7CgogICAgICAgICAgICAgIGlmKCAoIGYobG8sIGEpICogZihtLCBhKSApIDwgMCkgcmV0dXJuIGRpdmlkZUV0SW1wZXJhKGxvLCBtLCBhKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSAKICAgICAgICAgICAgICAgICAgICAgICAgICAJICAgICAgICAgICAgICAgICAgcmV0dXJuIGRpdmlkZUV0SW1wZXJhKG0sIGhpLCBhKTsKCiAgICAgICB9Cn0KCmRvdWJsZSBMTihkb3VibGUgYSkgewoKCSAgIHJldHVybiBkaXZpZGVFdEltcGVyYSgwLCBhLCBhKTsKfQoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgY29uc3QgKmFyZ3ZbXSkKewoJaW50IGE7IAoJc2NhbmYoIiVkIiwgJmEpOyAJCiAgICBwcmludGYoImxuKCVkKSA9ICUuNWZcbiIsIGEsICBMTihhKSk7CiAgICAvL2J1aWx0LWluIGZ1bmN0aW9uCiAgICBwcmludGYoImxuKCVkKSA9ICUuNWYgLSBidWlsdC1pbiBmdW5jdGlvbiBjIiwgYSwgbG4oYSkpOwoJcmV0dXJuIDA7Cn0=