#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
long double ehoch(long double x){
long double erg = 0;
long long counter = 0;
long double epsilon = 0.0000000001;
long double next = 1;
counter++;
while(epsilon < abs(next) && counter < 100){
erg += next;
next *= x / counter;
counter++;
}
return erg;
}
int main() {
for (double x = 0; x < 10; x++)
cout << x << ": " << setprecision(10) << ehoch(x) << " <-> " << exp(x) << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxpb21hbmlwPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKbG9uZyBkb3VibGUgZWhvY2gobG9uZyBkb3VibGUgeCl7CiAgICBsb25nIGRvdWJsZSBlcmcgPSAwOwogICAgbG9uZyBsb25nIGNvdW50ZXIgPSAwOwogICAgbG9uZyBkb3VibGUgZXBzaWxvbiA9IDAuMDAwMDAwMDAwMTsKICAgIGxvbmcgZG91YmxlIG5leHQgPSAxOwogICAgY291bnRlcisrOwogICAgd2hpbGUoZXBzaWxvbiA8IGFicyhuZXh0KSAmJiBjb3VudGVyIDwgMTAwKXsKICAgICAgICBlcmcgKz0gbmV4dDsKICAgICAgICBuZXh0ICo9IHggLyBjb3VudGVyOwogICAgICAgIGNvdW50ZXIrKzsKICAgIH0KICAgIHJldHVybiBlcmc7Cn0KCmludCBtYWluKCkgewogICAgZm9yIChkb3VibGUgeCA9IDA7IHggPCAxMDsgeCsrKQoJICBjb3V0IDw8IHggPDwgIjogIiA8PCBzZXRwcmVjaXNpb24oMTApIDw8IGVob2NoKHgpIDw8ICIgPC0+ICIgPDwgZXhwKHgpIDw8IGVuZGw7CgoJcmV0dXJuIDA7Cn0=