PAT 甲级 A1060 (2019/02/22)

Posted zjsaipplp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PAT 甲级 A1060 (2019/02/22)相关的知识,希望对你有一定的参考价值。

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<iostream>
 4 using namespace std;
 5 int n;
 6 string Deal(string S, int &e){
 7     int k = 0;    //s的下标
 8     while(S.length() > 0 && S[0] == ‘0‘){
 9         S.erase(S.begin());        //去掉S的前导0 
10     }
11     if(S[0] == ‘.‘){        //若去掉前导0后是小数点,则说明S是小于1的学生 
12         S.erase(S.begin());        //去掉小数点
13         while(S.length() > 0 && S[0] == ‘0‘){
14             S.erase(S.begin());    //去掉小数点后面非零位前的所有零 
15             e--;    //每去掉一个零,指数e减1        
16         } 
17     }else{        //若去掉前导0后不是小数点,则找到后面的小数点删除 
18         while(k < S.length() && S[k] != ‘.‘){    //寻找小数点 
19             k++;
20             e++;    //只要不遇到小数点,就让指数e++ 
21         }
22         if(k < S.length()){    //while结束后k<S.length(),说明遇到了小数点 
23             S.erase(S.begin() + k);        //删除小数点 
24         } 
25     }
26     if(S.length() == 0){
27         e = 0;        //如果去掉前导0后S的长度为0,则这个数为0 
28     }
29     int num = 0;    //
30     k = 0;
31     string res;
32     while(num < n){        //只要精度还没到n 
33         if(k < S.length())    
34             res +=S[k++];    //只要还有数字,就加到res末尾 
35         else 
36             res += ‘0‘;        //否则res末尾添加0 
37         num++;        //精度加1 
38     }
39     return res;
40 } 
41 int main(){
42     string S1, S2, S3, S4;    
43     cin >> n >> S1 >> S2;
44     int e1 = 0, e2 = 0;        //e1 e2为S1 S2的指数 
45     S3 = Deal(S1, e1);
46     S4 = Deal(S2, e2);
47     if(S3 == S4 && e1 == e2)        //若主体&指数相同,则输出“YES” 
48         cout << "YES 0." << S3 << "*10^" << e1 << endl;         
49     else            //这里对于YES,NO应该是字母全部大写
50         cout << "NO 0." << S3 << "*10^" << e1 << " 0." << S4 << "*10^" << e2 << endl;
51     return 0;
52 } 

 

以上是关于PAT 甲级 A1060 (2019/02/22)的主要内容,如果未能解决你的问题,请参考以下文章

PAT 甲级 A1047 (2019/02/22)

PAT 甲级 A1100 (2019/02/22)

PAT 甲级 A1063 (2019/02/22)

pat甲级75分在啥水平

pat甲级没做出来没有分吗

pat甲级60分啥水平