1024 科学计数法

半腔热情 提交于 2020-03-08 12:37:24

在这里插入图片描述

输入格式:

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

输出格式:

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

输入样例 1:

+1.23400E-03

输出样例 1:

0.00123400

输入样例 2:

1.2E+10

输出样例 2:

12000000000
#include<iostream>
#include<string>
using namespace std;
int main(){
	string s;
	int len0=0;
	cin>>s;
	for(int i=0;i<s.length();i++)
        if(s[i]=='E'){
            for(int j=i+2;j<s.length();j++)
            	len0=len0*10+(s[j]-'0'); 
            if(s[0]=='-') cout<<'-';
            if(len0==0){
                for(int j=1;j<i;j++) 
                cout<<s[j];
            }
            else if(s[i+1]=='+'){
                cout<<s[1]; 
                if(len0<i-3){
                    for(int j=3;j<3+len0;j++)
                        cout<<s[j];
                    cout<<'.';
                    for(int j=3+len0;j<i;j++)
                    	cout<<s[j];
                }
                else {
                    for(int j=3;j<i;j++)
                    	cout<<s[j];
                    for(int j=1;j<=len0-(i-3);j++)
                    	cout<<0; 
                }
            }
            else{
                cout<<"0."; 
                for(int j=1;j<len0;j++)
                	cout<<0;
                cout<<s[1]; 
                for(int j=3;j<i;j++)
                	cout<<s[j];	
            }
            return 0;
        }
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!