PAT-1024 科學計數法
阿新 • • 發佈:2018-11-13
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> using namespace std; int main() { char b1,b2; int l=0; cin>>b1; char s[10010]={0}; char temp; cin>>temp; while(temp!='E') { s[l++]=temp; cin>>temp; } cin>>b2; int w; cin>>w; if(b2=='-') { if(b1=='-') { cout<<"-"; } cout<<"0."; w--; while(w--) { cout<<"0"; } for(int i=2;i<l;i++) { cout<<s[i]; } } if(b2=='+') { if(b1=='-') { cout<<"-"; } if(w>=l-2) { cout<<s[0]; for(int i=2;i<l;i++) { cout<<s[i]; } for(int i=0;i<w-l+2;i++) { cout<<"0"; } } if(w<l-2) { cout<<s[0]; for(int i=2;i<2+w;i++) { cout<<s[i]; } cout<<"."; for(int i=2+w;i<l;i++) { cout<<s[i]; } } } return 0; }
2個測試沒有通過o(╥﹏╥)o