【PAT】1073. Scientific Notation

来源:互联网 发布:java递归代码 编辑:程序博客网 时间:2024/05/16 08:35
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int main(){    char str[10010];    gets(str);    char ans[10010];    int len=strlen(str);    if(str[0]=='-') cout<<'-';    ans[0]=str[1];    char exp[10];int i;    for(i=3;i<len && str[i]!='E';i++){       ans[i-2]=str[i];    }    ans[i-2]='\0';    int k=0;    for(i++;i<len;i++)        exp[k++]=str[i];    int ep=0;    int l=strlen(exp);    for(int i=1;i<l;i++){        ep*=10;        ep+=exp[i]-'0';    }    int len1=strlen(ans);        if(exp[0]=='-'){        printf("0.");        for(int i=0;i<ep-1;i++)            printf("0");        printf("%s",ans);    }else{        if(len1-2>=ep)        {            for(int i=0;i<=ep;i++)              printf("%c",ans[i]);            printf(".");            for(int i=ep+1;i<len1;i++)                printf("%c",ans[i]);        }        else{            printf("%s",ans);            for(int i=0;i<ep-len1+1;i++)                printf("0");        }    }    return 0;}

0 0
原创粉丝点击