zoukankan      html  css  js  c++  java
  • 1024 科学计数法(20 分)

    科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [+-][1-9].[0-9]+E[+-][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指数部分的正负号即使对正数也必定明确给出。

    现以科学计数法的格式给出实数 A,请编写程序按普通数字表示法输出 A,并保证所有有效位都被保留。

    输入格式:

    每个输入包含 1 个测试用例,即一个以科学计数法表示的实数 A。该数字的存储长度不超过 9999 字节,且其指数的绝对值不超过 9999。

    输出格式:

    对每个测试用例,在一行中按普通数字表示法输出 A,并保证所有有效位都被保留,包括末尾的 0。

    输入样例 1:

    +1.23400E-03
    

    输出样例 1:

    0.00123400
    

    输入样例 2:

    -1.2E+10
    

    输出样例 2:

    -12000000000
    

    #include <iostream>
    #include <string>
    #include <iomanip>
    #include <math.h>
    using namespace std;
     
    int main ()
    {
        string inStr, subStr1, subStr2;  //分别记录输入的字符串,小数部分和指数部分
        char flag;   // 指数的符号
        int pos;   // 记录'E'字符的位置
        cin>>inStr;
        if('-' == inStr[0])
            cout<<"-";  // 小数符号位
        pos = inStr.find('E');//找到e所在的位置
        subStr1 = inStr.substr(1,pos-1);//将小数部分保存下来,从1开始复制pos-1个字符
        flag = inStr[pos+1];
        subStr2 = inStr.substr(pos+2,inStr.size()-2-pos);//将指数部分保存下来
        int n = stoi(subStr2);//将指数部分转为int型
        subStr1.erase(subStr1.find('.'),1);//删除从'.'开始的1个字符'
        int len = subStr1.size();//保存下来小数部分的长度
        if('+' == flag )  {//如果指数符号为正数,就看指数位是不是比小数长度小,如果小于
        //就在n+1处插入1个.如果不是就在小数后面加上n+1-len个0
            if(n>=0 && n<len-1)
                subStr1.insert(n+1, 1, '.');
            else
                subStr1.insert(len, n-len+1, '0'); 
            cout<<subStr1;
        }
        else {//如果符号位为负数,如果是0个就在原来的位置加上.,如果不是0,就在前面加n-1个0,再在前面加上0.
            if(0 == n) {
                subStr1.insert(1, 1, '.');
                cout<<subStr1;
            }
            else {
              cout<<"0."<<setfill('0')<<setw(len+n-1)<<subStr1;
            }
        }
     
        return 0;
    }
  • 相关阅读:
    Can't remove netstandard folder from output path (.net standard)
    website项目的reference问题
    The type exists in both DLLs
    git常用配置
    Map dependencies with code maps
    How to check HTML version of any website
    Bootstrap UI 编辑器
    网上职位要求对照
    Use of implicitly declared global variable
    ResolveUrl in external JavaScript file in asp.net project
  • 原文地址:https://www.cnblogs.com/fromzore/p/9556549.html
Copyright © 2011-2022 走看看