1. 程式人生 > >1024 科學計數法 (20 分)

1024 科學計數法 (20 分)

#include <iostream>
#include <string>
#include <cmath>

using namespace std;

int main()
{
    string s1,s2;
    int sum=0;
    int flag;
    cin>>s1;
    for(int i=0;i<s1.length();i++){
        if(s1[i]=='E'){
            flag=i+1;
            break;
        }
    }
    int j=0;
    for(int i=s1.length()-1;i>flag;i--){
        int temp=(int)s1[i]-48;
        sum+=temp*pow(10,j);
        j++;
    }

    if(s1[0]=='-'){
        cout<<"-";
    }

    if(s1[flag]=='-'){
        s2[0]='0';
        s2[1]='.';
        int h=2;
        for(int i=0;i<sum-1;i++){
            s2[h]='0';
            h++;
        }
        for(int i=0;i<h;i++){
            cout<<s2[i];
        }
        for(int i=1;i<flag-1;i++){
            if(i==2){
                continue;
            }
            cout<<s1[i];
        }
    }else{
        for(int i=1;i<flag-1;i++){
            if(i==2||s1[i]=='0'){
                continue;
            }
            cout<<s1[i];
        }
        int h=0;
        for(int i=0;i<sum-flag+5;i++){
            s2[h]='0';
            h++;
        }
        for(int i=0;i<h;i++){
            cout<<s2[i];
        }
    }
    return 0;
}