PAT 甲级 A1073 (2019/02/10) NULL(18/20)
Posted zjsaipplp
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PAT 甲级 A1073 (2019/02/10) NULL(18/20)相关的知识,希望对你有一定的参考价值。
1 #include<cstdio> 2 #include<cstring> 3 int main(){ 4 char Array[10010]; 5 scanf("%s",Array); 6 int i = 0, pos, cnt, length = strlen(Array); 7 while(Array[i++] != ‘E‘); 8 pos = i - 1; 9 cnt = i + 1; 10 if(Array[0] == ‘-‘) 11 printf("-"); 12 if(Array[i] == ‘-‘){ 13 printf("0."); 14 if(Array[cnt] == ‘0‘){ 15 for(int j = cnt; j < length; j++){ 16 if(Array[j] != ‘0‘){ 17 for(int k = 0; k < Array[j] - ‘0‘ - 1; k++) 18 printf("0"); 19 } 20 } 21 } 22 else{ 23 for(int j = 0; j < (Array[cnt]-‘0‘) *10+(Array[cnt + 1] - ‘0‘) - 1; j++) 24 printf("0"); 25 } 26 for(int i = 1; i < pos; i++){ 27 if(Array[i] == ‘.‘){ 28 continue; 29 } 30 printf("%c",Array[i]); 31 } 32 } 33 else{ 34 int flag = 0; 35 if(Array[cnt] == ‘0‘){ 36 for(int j = cnt; j < length; j++){ 37 if(Array[j] == ‘0‘){ 38 continue; 39 } 40 flag = Array[j] - ‘0‘; 41 } 42 } 43 else{ 44 for(int q = cnt; q < length; q++){ 45 flag = flag*10 + Array[q] - ‘0‘; 46 } 47 } 48 int start = 0; 49 for(int k = 1; k < pos; k++){ 50 if(Array[k] == ‘.‘){ 51 continue; 52 } 53 printf("%c",Array[k]); 54 start++; 55 if(start-1 == flag && Array[k+1] != ‘E‘){ 56 printf("."); 57 } 58 } 59 if(flag > start){ 60 for(int j = 0; j < (Array[cnt]-‘0‘)*10+(Array[cnt + 1] - ‘0‘) - 1; j++) 61 printf("0"); 62 } 63 } 64 return 0; 65 }
以上是关于PAT 甲级 A1073 (2019/02/10) NULL(18/20)的主要内容,如果未能解决你的问题,请参考以下文章