#include<iostream> #include<stdlib.h> using namespace std; char s2[32], s1[32]; long long a1, a2; int e1, e2; int main(){ int i, f, s; long long t; while (cin >> s1 >> s2) { a1 = a2 = 0; for (s = f = e1 = i = 0; s1[i]; i++) { if (s1[i] == '-')s = 1; else if (s1[i] == '.')f = 1; else if (s1[i] == 'e' || s1[i] == 'E') { e1 += atoi(s1 + i + 1); break; } else a1 = a1 * 10 + s1[i] - '0', e1 -= f; } if (s)a1 = -a1; for (s = f = e2 = i = 0; s2[i]; i++) { if (s2[i] == '-')s = 1; else if (s2[i] == '.')f = 1; else if (s2[i] == 'e' || s2[i] == 'E') { e2+=atoi(s2 + i + 1); break; } else a2 = a2 * 10 + s2[i] - '0', e2 -= f; } if (s)a2 = -a2; if (e1<e2)for (; e1<e2; e2--)a2 *= 10; else if (e1>e2)for (; e1>e2; e1--)a1 *= 10; a1 += a2; if (!a1){ cout << 0 << endl; continue; } while (e1<0 && a1 % 10 == 0)a1 /= 10, e1++; if (e1 >= 0){ printf("%lld", a1); for (i = 0; i<e1; i++)putchar('0'); cout << endl; continue; } if (a1<0)a1 = -a1, s = 1; else s = 0; for (t = 1, f = 0; t <= a1; t *= 10, f++); if (t>1)t /= 10, f--; if (s)putchar('-'); int m = 0; while (a1){ if(m>0)printf("%lld", a1 / t); else { printf("%lld.", a1 / t); m++; } if (a1>=t){ a1 = a1 - a1 / t*t; }t /= 10; } printf("e%d\n", e1 + f); } return 0; } /************************************************************** Problem: 2208 User: admin Language: C++ Result: Accepted Time:18 ms Memory:2076 kb ****************************************************************/