La notación científica es un método conveniente utilizado por los científicos para representar números muy grandes o muy pequeños. Satisface la expresión regular [+ -] [1-9] .
[0-9] + E [+ -] [0-9] +, es decir, la parte entera del número tiene solo 1 dígito y la parte decimal tiene al menos 1 dígito. El signo del número y su parte exponente deben estar claramente dados incluso para números positivos.
Ahora, el número real A se da en formato de notación científica. Escriba un programa para la salida A de acuerdo con la representación numérica ordinaria y asegúrese de que todos los dígitos válidos estén reservados.
Formato de entrada:
Cada entrada contiene 1 caso de prueba, que es un número real A expresado en notación científica. La longitud de almacenamiento de este número no supera los 9999 bytes y el valor absoluto de su exponente no supera los 9999.
Formato de salida:
Para cada caso de prueba, envíe A en una línea de acuerdo con la notación numérica ordinaria y asegúrese de que todos los bits válidos estén reservados, incluido el 0 al final.
Ejemplo de entrada 1:
+1.23400E-03
Muestra de salida 1:
0.00123400
Ejemplo de entrada 2:
-1.2E+10
Muestra de salida 2:
-12000000000
#include<stdio.h>
#include<iostream>
using namespace std;
int main() {
string s;
int k,kk;
while(getline(cin,s)) {
int e=0,t;
string shu="";
if(s[0]=='+')k=1;
else k=-1;
for(int i=1; i<s.size(); i++) {
if(s[i]=='E') {
t=i;
break;
} else if(s[i]=='.'){
continue;
}else {
shu+=s[i];
}
}
if(s[t+1]=='+')kk=1;
else kk=-1;
for(int i=t+2; i<s.size(); i++) {
e=e*10+s[i]-48;
}
//t-3就是点到e中有几个
if(k==-1){
cout<<"-";
}
if(kk==1){
if(t-3<e){
cout<<shu;
e=e-t+3;
while(e--){
cout<<"0";
}
}else if(t-3==e){
cout<<shu;
}
else{
for(int i=0;i<=e;i++){cout<<shu[i];}
cout<<".";
for(int i=e+1;i<shu.size();i++){cout<<shu[i];}
}
cout<<endl;
}
else if(kk==-1){
cout<<"0"<<".";
e=e-1;
while(e--){
cout<<"0";
}
for(int i=0;i<shu.size();i++){cout<<shu[i];}
cout<<endl;
}
}
}