Codeforces 691C Exponential notation
2016-07-26 10:43
330 查看
模拟。
#pragma comment(linker, "/STACK:1024000000,1024000000") #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<algorithm> #include<vector> #include<map> #include<set> #include<queue> #include<stack> #include<iostream> using namespace std; typedef long long LL; const double pi = acos(-1.0), eps = 1e-8; void File() { freopen("D:\\in.txt", "r", stdin); freopen("D:\\out.txt", "w", stdout); } inline int read() { char c = getchar(); while (!isdigit(c)) c = getchar(); int x = 0; while (isdigit(c)) { x = x * 10 + c - '0'; c = getchar(); } return x; } const int maxn=1000100; char s[maxn],t[maxn]; void f() { bool x=0; int len=strlen(s); for(int i=0;i<len;i++) if(s[i]=='.') x=1; if(x==0) s[len]='.', s[len+1]='0'; else { if(s[len-1]=='.') s[len]='0'; else if(s[0]=='.') { for(int i=len;i>=1;i--) s[i]=s[i-1]; s[0]='0'; } } } void g() { int sz=0; strcpy(t,s); memset(s,0,sizeof s); int x; for(int i=0;t[i];i++) if(t[i]=='.') x=i; int pos=x-1; for(int i=0;i<x-1;i++) if(t[i]!='0'){ pos=i; break; } for(int i=pos;i<=x;i++) s[sz++]=t[i]; int len=strlen(t); pos=x+1; for(int i=len-1;i>=pos;i--) if(t[i]!='0'){ pos=i; break; } for(int i=x+1;i<=pos;i++) s[sz++]=t[i]; } void out() { int x; for(int i=0;s[i];i++) if(s[i]=='.') x=i; int len=strlen(s); if(x==1&&s[0]=='0') { int pos=-1; for(int i=2;i<len;i++) if(s[i]!='0') { pos=i; break; } if(pos==-1) printf("0\n"); else { if(pos==len-1) printf("%cE%d",s[pos],1-pos); else { printf("%c.",s[pos]); for(int i=pos+1;i<len;i++) printf("%c",s[i]); printf("E%d\n",1-pos); } } } else if(x==1&&s[0]!='0') { if(s[len-1]=='0') printf("%c\n",s[0]); else printf("%s\n",s); } else if(x!=1) { int pos=-1; for(int i=len-1;i>=1;i--) if(s[i]!='0'&&s[i]!='.') {pos=i; break;} if(pos==-1) printf("%cE%d\n",s[0],x-1); else { printf("%c.",s[0]); for(int i=1;i<=pos;i++) if(s[i]!='.') printf("%c",s[i]); printf("E%d\n",x-1); } } } int main() { memset(s,0,sizeof s); scanf("%s",s); f(); g(); out(); return 0; }
相关文章推荐
- Win7如何共享文件 Win7如何分享局域网并设置共享文件夹账户和密码
- 传统方式和spring方式的优缺点
- note2便携式WLAN热点开启后没连接时自动关闭时长在哪设置
- dz论坛使用七牛加速
- 慕丝恋人白色巧克力蛋糕点心面包办公室零食品 金针菇独立小包装
- Struts2 的Action中取得请求参数值的几种方法
- Android 6.0开发的权限注意事项
- Nginx+uWSGI+Swift
- Android Studio你不知道的调试技巧
- 保留日后用
- ubuntu--dpkg 被中断
- 写一个android小闹钟
- C# 工具函数
- C# 工具函数
- Activity对Dialog的管理
- Android如何实现自毁
- if switch 具体用法 循环 while do while for
- c# Hashtable 的使用
- Javascript判断页面是否加载完成
- 大数问题(大明A+B)