首页 > 其他 > 详细

A1073

时间:2019-12-28 14:30:19      阅读:95      评论:0      收藏:0      [点我收藏+]

科学计数法转化为普通表示。

需要想清楚指数的符号以及0和小数点的位置及个数。

 1 #include<cstdio>
 2 #include<iostream>
 3 using namespace std;
 4 int main(){
 5     string str;
 6     cin>>str;
 7     int len=str.length();
 8     if(str[0]==-) printf("-");
 9     
10     int pos=0;
11     while(str[pos]!=E){
12         pos++;
13     }
14     int exp=0;//exp存放指数,先不考虑正负 
15     for(int i=pos+2;i<len;i++){
16         exp=exp*10+(str[i]-0); 
17     }
18     if(exp==0){//判断指数为0的情况 
19         for(int i=1;i<pos;i++){
20             printf("%c",str[i]);
21         }
22     }
23     if(str[pos+1]==-){//如果指数为负 
24         printf("0.");
25         for(int i=0;i<exp-1;i++){
26             printf("0");
27         } 
28         printf("%c",str[1]);
29         for(int i=3;i<pos;i++){
30             printf("%c",str[i]);
31         }
32     }
33     else{//如果指数为正 
34         for(int i=1;i<pos;i++){
35             if(str[i]==.) continue;
36             printf("%c",str[i]);
37             if(i==exp+2&&pos-3!=exp){
38                 printf(".");
39             }
40         } 
41         for(int i=0;i<exp-(pos-3);i++){
42             printf("0");
43         }
44     }
45     return 0;
46 }

A1073

原文:https://www.cnblogs.com/Lynn-2019/p/12111430.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!