#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
const double pi = 3.1415926;
double NCos(int n)
{
static const double s2 = 1/sqrt(2);
double res = (n%2 == 1) ? s2 : (n%4 == 0) ? 1 : 0;
if (n%8 >= 3 && n%8 <= 5) res *= -1;
return res;
}
double summa(double x, double eps = 1e-7) {
double sum = 1, term = 1;
for (int n = 1; abs(term) > eps; ++n)
sum = sum + (term*=x/n) * NCos(n);
return sum;
}
int main() {
for (double x = 0.1; x < 1.05; x += 0.1) {
cout
<< setprecision(3) << left << setw(4) << x
<< setprecision(7) << left << setw(10) << summa(x)
<< setprecision(7) << left << setw(10)
<< exp(x * cos(pi / 4))*cos(x * sin(pi / 4)) << endl;
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPGNtYXRoPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGRvdWJsZSBwaSA9IDMuMTQxNTkyNjsKCmRvdWJsZSBOQ29zKGludCBuKQp7CiAgICBzdGF0aWMgY29uc3QgZG91YmxlIHMyID0gMS9zcXJ0KDIpOwogICAgZG91YmxlIHJlcyA9IChuJTIgPT0gMSkgPyBzMiA6IChuJTQgPT0gMCkgPyAxIDogMDsKICAgIGlmIChuJTggPj0gMyAmJiBuJTggPD0gNSkgcmVzICo9IC0xOwogICAgcmV0dXJuIHJlczsKfQoKZG91YmxlIHN1bW1hKGRvdWJsZSB4LCBkb3VibGUgZXBzID0gMWUtNykgewogICAgZG91YmxlIHN1bSA9IDEsIHRlcm0gPSAxOwoKICAgIGZvciAoaW50IG4gPSAxOyBhYnModGVybSkgPiBlcHM7ICsrbikKICAgICAgICBzdW0gID0gc3VtICsgKHRlcm0qPXgvbikgKiBOQ29zKG4pOwoKICAgIHJldHVybiBzdW07CiAgICB9CgppbnQgbWFpbigpIHsKICAgIGZvciAoZG91YmxlIHggPSAwLjE7IHggPCAxLjA1OyB4ICs9IDAuMSkgewogICAgICAgIGNvdXQKICAgICAgICAgICAgICAgIDw8IHNldHByZWNpc2lvbigzKSA8PCBsZWZ0IDw8IHNldHcoNCkgPDwgeAogICAgICAgICAgICAgICAgPDwgc2V0cHJlY2lzaW9uKDcpIDw8IGxlZnQgPDwgc2V0dygxMCkgPDwgc3VtbWEoeCkKICAgICAgICAgICAgICAgIDw8IHNldHByZWNpc2lvbig3KSA8PCBsZWZ0IDw8IHNldHcoMTApCiAgICAgICAgICAgICAgICA8PCBleHAoeCAqIGNvcyhwaSAvIDQpKSpjb3MoeCAqIHNpbihwaSAvIDQpKSA8PCBlbmRsOwogICAgICAgIH0KICAgIH0K