首页 > 编程知识 正文

PAT算法

时间:2023-05-04 04:30:09 阅读:278196 作者:3649

题目描述 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+,即数字的整数部分只有1位,小数部分至少有1位,该数字及其指数部分的正负号即使对正数也必定明确给出。现以科学计数法的格式给出实数A,请编写程序按普通数字表示法输出A,并保证所有有效位都被保留。
输入描述: 每个输入包含1个测试用例,即一个以科学计数法表示的实数A。该数字的存储长度不超过9999字节,且其指数的绝对值不超过9999。

输出描述: 对每个测试用例,在一行中按普通数字表示法输出A,并保证所有有效位都被保留,包括末尾的0。
输入例子: +1.23400E-03
输出例子: 0.00123400 代码: #include"iostream"#include "string"#include "cmath"#include "vector"using namespace std;int main(){string Input;cin >> Input;vector<char> temp;int i = 3;while (Input[i] != 'E'){temp.push_back(Input[i]);i++;}int bits = i - 3;char indexSigned = Input[i + 1];int num2 = 0;for (int k = i + 2; k <= Input.size() - 1; k++){num2 = num2 * 10 + (Input[k] - '0');}if (Input[0] == '-')cout << '-';if (indexSigned == '+'){cout << Input[1];for (int ff = 0; ff < (num2 < bits?num2:bits); ff++)cout << temp[ff];if (num2 < bits){cout << '.';for (int i = num2; i < bits; i++)cout << temp[i];}else{for (int i = 0; i < num2 - bits; i++)cout << '0';}}else{cout << "0.";for (int i = 0; i < num2 - 1; i++)cout << '0';cout << Input[1];for (int i = 0; i < temp.size(); i++)cout << temp[i];}} 重点: 无

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。