#include <iostream>
#include <iomanip>
using namespace std;
double iterate(double x, double eps)
{
x = x*x*x;
double term = x/2, sum = x/2;
for(int k = 3; abs(term) > eps; ++k)
sum += (term *= x/k);
return sum;
}
double recursion(double x, double eps, double term = 1, int k = 2)
{
if (abs(term) < eps) return 0;
term *= x*x*x/k;
return term + recursion(x,eps,term,k+1);
}
int main()
{
for(double x = 0; x < 2; x+= 0.2)
cout << setw(10) << x << setw(15) << iterate(x,1e-8) << setw(15) << recursion(x,1e-8) << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpkb3VibGUgaXRlcmF0ZShkb3VibGUgeCwgZG91YmxlIGVwcykKewogICAgeCA9IHgqeCp4OwogICAgZG91YmxlIHRlcm0gPSB4LzIsIHN1bSA9IHgvMjsKICAgIGZvcihpbnQgayA9IDM7IGFicyh0ZXJtKSA+IGVwczsgKytrKQogICAgICAgIHN1bSArPSAodGVybSAqPSB4L2spOwogICAgcmV0dXJuIHN1bTsKfQoKZG91YmxlIHJlY3Vyc2lvbihkb3VibGUgeCwgZG91YmxlIGVwcywgZG91YmxlIHRlcm0gPSAxLCBpbnQgayA9IDIpCnsKICAgIGlmIChhYnModGVybSkgPCBlcHMpIHJldHVybiAwOwogICAgdGVybSAqPSB4KngqeC9rOwogICAgcmV0dXJuIHRlcm0gKyByZWN1cnNpb24oeCxlcHMsdGVybSxrKzEpOwp9CgppbnQgbWFpbigpCnsKICAgIGZvcihkb3VibGUgeCA9IDA7IHggPCAyOyB4Kz0gMC4yKQogICAgICAgIGNvdXQgPDwgc2V0dygxMCkgPDwgeCA8PCBzZXR3KDE1KSA8PCBpdGVyYXRlKHgsMWUtOCkgPDwgc2V0dygxNSkgPDwgcmVjdXJzaW9uKHgsMWUtOCkgPDwgZW5kbDsKfQo=