#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
double pi = 3.14159265358;
double Paul(double x, double eps)
{
double y = 1, summa = 0, last = 1;;
for (; fabs(last) > eps;)
{
last = pow(-1, y) * pow(x, 2 * y - 1) / (2 * y - 1);
summa += last;
y+=1;
}
return pi/2 + summa;
}
double Harry(double x, double eps)
{
double summ = pi/2 - x, x2n_1 = -x;
x *= x;
for(int k = 3; fabs(x2n_1/k) > eps; k += 2)
{
x2n_1 *= -x;
summ += x2n_1/k;
}
return summ;
}
int main()
{
for(double x = 0; x <= 0.9; x += 0.1)
{
cout << setw(4) << x
<< setw(12) << pi/2-atan(x)
<< setw(12) << Paul(x, 1e-10)
<< setw(12) << Harry(x, 1e-10) << endl;
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPGNtYXRoPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmRvdWJsZSBwaSA9IDMuMTQxNTkyNjUzNTg7Cgpkb3VibGUgUGF1bChkb3VibGUgeCwgZG91YmxlIGVwcykKewogICAgZG91YmxlIHkgPSAxLCBzdW1tYSA9IDAsIGxhc3QgPSAxOzsKICAgIGZvciAoOyBmYWJzKGxhc3QpID4gZXBzOykKICAgIHsKICAgICAgICBsYXN0ID0gcG93KC0xLCB5KSAqIHBvdyh4LCAyICogeSAtIDEpIC8gKDIgKiB5IC0gMSk7CiAgICAgICAgc3VtbWEgKz0gbGFzdDsKICAgICAgICB5Kz0xOwogICAgfQogICAgcmV0dXJuIHBpLzIgKyBzdW1tYTsKfQoKZG91YmxlIEhhcnJ5KGRvdWJsZSB4LCBkb3VibGUgZXBzKQp7CiAgICBkb3VibGUgc3VtbSA9IHBpLzIgLSB4LCB4Mm5fMSA9IC14OwogICAgeCAqPSB4OwoKICAgIGZvcihpbnQgayA9IDM7IGZhYnMoeDJuXzEvaykgPiBlcHM7IGsgKz0gMikKICAgIHsKICAgICAgICB4Mm5fMSAqPSAteDsKICAgICAgICBzdW1tICs9IHgybl8xL2s7CiAgICB9CiAgICByZXR1cm4gc3VtbTsKfQoKaW50IG1haW4oKQp7CiAgICBmb3IoZG91YmxlIHggPSAwOyB4IDw9IDAuOTsgeCArPSAwLjEpCiAgICB7CiAgICAgICAgY291dCA8PCBzZXR3KDQpIDw8IHgKICAgICAgICAgICAgPDwgc2V0dygxMikgPDwgcGkvMi1hdGFuKHgpCiAgICAgICAgICAgIDw8IHNldHcoMTIpIDw8IFBhdWwoeCwgMWUtMTApCiAgICAgICAgICAgIDw8IHNldHcoMTIpIDw8IEhhcnJ5KHgsIDFlLTEwKSA8PCBlbmRsOwogICAgfQoKCn0K