字符串的处理,还是有点搞人,没有其他题那么直观,这种题一般一个小错误能卡一年。
注
意
:
\color{red}注意:
注意:
1.所有有效位都要输出
2.注意有效位输出完之后,正数可能需要补零
3.注意指数为0的输出
#include <string>
#include <vector>
#include <set>
#include <unordered_map>
#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
int main(){
string src;
getline(cin, src);
int k = src.find('E');
if(src[0]=='-') cout<<"-";
if(src[k+1]=='-'){
int t = stoi(src.substr(k+2));
printf("0.");
for(int i = 1; i < t; i++){
printf("0");
}
for(int j = 1; j < k; j++){
if(src[j] != '.') cout<<src[j];
}
}else{
int t = stoi(src.substr(k+2));
int cnt = 0;
for(int j = 1; j < k; j++){
if(src[j] == '.') continue;
cout<<src[j];
cnt++;
if(cnt - 1 == t && j != k - 1) cout<<".";
}
while(cnt <= t){
cout<<"0";
cnt++;
}
}
return 0;
}