#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
double Func(double x, double eps, double term = 0, int n = 0)
{
if (n == 0) term = x*x*x;
else
{
if (abs(term) < eps) return term;
term *= -x*x/(2*n*(2*n-1));
}
return term + Func(x,eps,term,n+1);
}
int main(int argc, char * argv[])
{
for(double x = 0; x < 1; x += 0.1)
cout << setw(5) << x << setw(15) << Func(x,1e-8) << setw(15) << x*x*x*cos(x) << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPGNtYXRoPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmRvdWJsZSBGdW5jKGRvdWJsZSB4LCBkb3VibGUgZXBzLCBkb3VibGUgdGVybSA9IDAsIGludCBuID0gMCkKewogICAgaWYgKG4gPT0gMCkgdGVybSA9IHgqeCp4OwogICAgZWxzZQogICAgewogICAgICAgIGlmIChhYnModGVybSkgPCBlcHMpIHJldHVybiB0ZXJtOwogICAgICAgIHRlcm0gKj0gLXgqeC8oMipuKigyKm4tMSkpOwogICAgfQogICAgcmV0dXJuIHRlcm0gKyBGdW5jKHgsZXBzLHRlcm0sbisxKTsKfQoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiBhcmd2W10pCnsKICAgIGZvcihkb3VibGUgeCA9IDA7IHggPCAxOyB4ICs9IDAuMSkKICAgICAgICBjb3V0IDw8IHNldHcoNSkgPDwgeCA8PCBzZXR3KDE1KSA8PCBGdW5jKHgsMWUtOCkgPDwgc2V0dygxNSkgIDw8IHgqeCp4KmNvcyh4KSA8PCBlbmRsOwp9Cg==