您的位置 首页 > 腾讯云社区

1024. 科学计数法 (20)---AI那点小事

科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][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<vector> #include<sstream> using namespace std; int main() { string a; getline(cin,a); //提取出基本数字num,指数e,指数的正负x bool isPositive = true; if(a[0]=='-'){ isPositive = false; cout << "-"; } a = a.substr(1); int numE = a.find('E'); string num = a.substr(0,numE); char x = a[numE+1]; string E = a.substr(numE+2,a.length()-numE-1); stringstream ss; int e; ss << E; ss >> e; //灵活利用substr分割num if(e == 0){ cout <<num<<endl; return 0; } if(x == '-'){ string cc = "0."; e--; while (e--) { cc = cc + '0'; } cc = cc + num[0] + num.substr(2); cout << cc << endl; } if(x == '+'){ if(e<num.length()-2){ string cc; cc =num[0]+num.substr(2,e)+'.'+num.substr(2+e,num.length()-2-e); cout << cc << endl; }else { string cc; cc = num[0]+num.substr(2); int k = e - (num.length() - 2); while (k--) { cc += '0'; } cout << cc << endl; } } return 0; } ---来自腾讯云社区的---AI那点小事

关于作者: 瞎采新闻

这里可以显示个人介绍!这里可以显示个人介绍!

热门文章

留言与评论(共有 0 条评论)
   
验证码: