http://codeforces.com/contest/699
http://codeforces.com/contest/696
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
题意:科学计数法转换成普通表示
题解:
#include <algorithm>
#include <iostream>
#include <cstring>
#include <vector>
#include <cstdio>
#include <string>
#include <cmath>
#include <queue>
#include <set>
#include <map>
using namespace std;
typedef long long ll;
#define de(x) cout << #x << "=" << x << endl
const int N=1005;
char s[N],ans[N];
int main() {
while(~scanf("%s",s+1)) {
int n=strlen(s+1),p=0;
for(int i=1;i<=n;++i) {
if(s[i]=='e') {
for(int j=i+1;j<=n;++j) {
p=p*10+s[j]-'0';
}
break;
}
}
//p+1个
int cnt=p+1,m=0,i;
for(i=1;s[i]!='e'&&cnt;++i) {
if('0'<=s[i]&&s[i]<='9') {
ans[++m]=s[i];
--cnt;
}
}
while(cnt--) ans[++m]='0';
ans[++m]='.';
for(;s[i]!='e';++i) {
if('0'<=s[i]&&s[i]<='9') ans[++m]=s[i];
}
while(ans[m]=='0') --m;
if(ans[m]=='.') --m;
int t=1;
while(t<m&&ans[t]=='0'&&ans[t+1]!='.') ++t;
ans[m+1]='\0';
printf("%s\n",ans+t);
}
return 0;
}
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------