1024. 科学计数法 (20)
来源:互联网 发布:java方法覆盖输出结果 编辑:程序博客网 时间:2024/06/05 17:43
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<cstring>#include<cmath>#include<algorithm>using namespace std;int main(){ char str[10000]; char num[10000]={0}; cin>>str; int pos=1;//小数点位置 int len=strchr(str,'E')-str-3;//小数部分长度 int ex=atoi(str+len+4);//指数部分 num[0]= str[1]; strncpy(num+1,str+3,len); if(str[0]=='-') cout<<"-"; if(ex>0) { pos+=ex; if(len<ex) { cout<<num; for(int i=len;i<ex;i++) { cout<<"0"; } } else if(len>ex) { for(int i=0;i<pos;i++) { cout<<num[i]; } cout<<"."; for(int i=pos;i<=len;i++) { cout<<num[i]; } } else cout<<num; } else if(ex<0) { cout<<"0."; for(int i=ex+1;i<0;i++) { cout<<"0"; } cout<<num; } else { for(int i=0;i<pos;i++) { cout<<num[i]; } cout<<"."; for(int i=pos;i<len+1;i++) { cout<<num[i]; } } cout<<endl; return 0;}//+1.23400E-03
阅读全文
0 0
- 1024. 科学计数法 (20)
- 1024. 科学计数法 (20)
- 1024. 科学计数法 (20)
- 1024. 科学计数法 (20)
- 1024. 科学计数法 (20)
- 1024. 科学计数法 (20)
- 1024. 科学计数法 (20)
- 1024. 科学计数法 (20)
- 1024. 科学计数法 (20)
- 1024. 科学计数法 (20)
- 1024. 科学计数法 (20)
- 1024. 科学计数法 (20)
- 1024. 科学计数法 (20)
- 1024. 科学计数法 (20)
- 1024. 科学计数法 (20)
- 1024. 科学计数法 (20)
- 1024. 科学计数法 (20)
- 1024. 科学计数法 (20)
- matlab多元线性回归
- C++ 标签
- SpringMVC日期类型转换问题三大处理方法归纳
- ICPC新疆赛区-Banana
- 数据结构队的使用
- 1024. 科学计数法 (20)
- 线程池原理(七):线程池的使用
- web前端笔试准备1
- Omnet ++ Error in Module (Node) No gate Index specified when access vector gate ‘out';
- 转载—Java中try catch finally语句中含有return语句的执行情况(总结版)
- 【硅谷问道】对于 iOS 开发,人工智能意味着什么?
- 对给定正整数数列A进行重新排序,使得数列A满足所有的A[i]*A[i+1]都是4的倍数。
- 十连测 D2T2 market(二分+背包)
- HDU 2955 Robberies