1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
using namespace std; typedef double db; double a; inline db (db x) { return pow(x, a / x - x); } inline db simpson(db l, db r) { return (F(l) + F(r) + 4 * F((l + r) / 2)) * (r - l) / 6; } db work(db l, db r, db eps, db a) { db mid = (l + r) / 2; db _l = simpson(l, mid), _r = simpson(mid, r); if(abs(_l + _r - a) <= 15 * eps) return _l + _r; return work(l, mid, eps / 2, _l) + work(mid, r, eps / 2, _r); } inline db integral(db l, db r, db eps) { if(l == r) return 0; if(l > r) return work(r, l, eps, simpson(r, l)); return work(l, r, eps, simpson(l, r)); } int main() { scanf("%lf", &a); if(a < 0) return puts("orz"), 0; return printf("%.5fn", integral(1e-10, 15, 1e-7)), 0; }
|
近期评论