• 【PAT甲级】1073 Scientific Notation (20 分)


    题意:

    输入科学计数法输出它表示的数字。

    AAAAAccepted code:

     1 #define HAVE_STRUCT_TIMESPEC
     2 #include<bits/stdc++.h>
     3 using namespace std;
     4 string s;
     5 int ans2[10007];
     6 int main(){
     7     ios::sync_with_stdio(false);
     8     cin.tie(NULL);
     9     cout.tie(NULL);
    10     cin>>s;
    11     int n=s.size();
    12     if(s[0]=='-')
    13         cout<<'-';
    14     int pos=3;
    15     int cnt2=0;
    16     int ans=s[1]-'0';
    17     for(int i=pos;i<n;++i){
    18         if(s[i]=='E'){
    19             pos=i+1;
    20             break;
    21         }
    22         ans2[++cnt2]=s[i]-'0';
    23     }
    24     int flag=0;
    25     if(s[pos]=='-')
    26         flag=1;
    27     ++pos;
    28     int num=0;
    29     for(int i=pos;i<n;++i){
    30         num*=10;
    31         num+=s[i]-'0';
    32     }
    33     if(flag){
    34         cout<<0<<'.';
    35         for(int i=1;i<num;++i)
    36             cout<<0;
    37         cout<<ans;
    38         for(int i=1;i<=cnt2;++i)
    39             cout<<ans2[i];
    40     }
    41     else{
    42         int num2=0;
    43         cout<<ans;
    44         int tamp=0;
    45         for(tamp=1;tamp<=cnt2&&num2<num;++tamp,++num2)
    46             cout<<ans2[tamp];
    47         if(tamp>cnt2)
    48             for(int i=1;i<=num-num2;++i)
    49                 cout<<0;
    50         else{
    51             cout<<'.';
    52             for(int i=tamp;i<=cnt2;++i)
    53                 cout<<ans2[i];
    54         }
    55     }
    56     return 0;
    57 }
    保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
  • 相关阅读:
    QT 界面刷新
    剑指 Offer 65. 不用加减乘除做加法
    3.nvidia-docker安装
    6.通过docker配置深度学习环境
    2.docker安装
    OSG+Visual Studio2015项目变量设置;
    Learning OSG programing---osgwindows
    日常学习网站推荐
    开发 MFC 应用的一般过程
    FVWM使用指南
  • 原文地址:https://www.cnblogs.com/ldudxy/p/11804593.html
Copyright © 2020-2023  润新知