0%
链接
传送门
题意
给出一个浮点数,转化成标准形式。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| #include <cstdio> #include <cstring> #include <algorithm> #include <cctype> #include <deque>
using namespace std;
typedef long long LL;
deque<char> dq;
int main() { char c; int cnt = 0; bool flag = false; while (~(c = getchar())) { if (c == '.') { flag = true; } else if (isdigit(c)) { dq.push_back(c); if (flag) { --cnt; } } } while (!dq.empty()) { if (dq.front() == '0') { dq.pop_front(); } else { break; } } while (!dq.empty()) { if (dq.back() == '0') { ++cnt; dq.pop_back(); } else { break; } } if (dq.empty()) { puts("0"); return 0; } putchar(dq.front()); dq.pop_front(); cnt += dq.size(); if (!dq.empty()) { putchar('.'); while (!dq.empty()) { putchar(dq.front()); dq.pop_front(); } } if (cnt != 0) { printf("E%d", cnt); } puts(""); return 0; }
|