浙大PAT甲级 1073

来源:互联网 发布:美敦力公司待遇 知乎 编辑:程序博客网 时间:2024/05/29 21:32

字符串处理,注意如果结果为整数,则不需要小数点,且包含后导0。

AC代码:

#include<iostream>#include<map>#include<cstdio>#include<algorithm>#include<queue>#include<cstring>#include<list>#include<set>#include<stack>#include<cmath>#include<vector>#define inf 999999999using namespace std;int main(){    string s;    cin>>s;    int flag=0;    if(s[0]=='-')    {        flag=1;    }    s.erase(0,1);    s.erase(1,1);    int mark_node1=1;    int mark_e;    for(int i=0;i<s.size();i++)    {        if(s[i]=='E')        {            mark_e=i;            break;        }    }    int flag1=0;    if(s[mark_e+1]=='-')    {        flag1=1;    }    int num=0;    for(int i=mark_e+2;i<s.size();i++)    {        num*=10;        num+=s[i]-'0';    }    //cout<<num<<endl;    if(flag==1)    {        printf("-");    }    if(flag1==0)    {        if(num==0)        {            cout<<s[0]<<".";            for(int i=1;i<mark_e;i++)            {                cout<<s[i];            }        }        else{        int j;        for(j=0;j<mark_node1+num;j++)        {            if(j>=mark_e)            {                cout<<0;            }            else            cout<<s[j];        }        if(j<mark_e)        {            cout<<".";        }        for(int i=mark_node1+num;i<mark_e;i++)        {            cout<<s[i];        }        }    }    else    {        if(num==0)        {            cout<<s[0]<<".";            for(int i=1;i<mark_e;i++)            {                cout<<s[i];            }        }        else        {            cout<<"0.";            for(int i=1;i<num;i++)            {                cout<<"0";            }            for(int i=0;i<mark_e;i++)            {                cout<<s[i];            }        }    }}


0 0
原创粉丝点击