科學計數法是科學家用來表示很大或很小的數字的一種方便的方法,其滿足正規表示式 [±][1-9].[0-9]+e[±][0-9]+,即數字的整數部分只有 1 位,小數部分至少有 1 位,該數字及其指數部分的正負號即使對正數也必定明確給出。以e為標誌,擷取前面部分作為底數,以字串儲存,用到了substr函式(c++沒有substring):現以科學計數法的格式給出實數 a,請編寫程式按普通數字表示法輸出 a,並保證所有有效位都被保留。
輸入格式:
每個輸入包含 1 個測試用例,即乙個以科學計數法表示的實數 a。該數字的儲存長度不超過 9999 位元組,且其指數的絕對值不超過 9999。
輸出格式:
對每個測試用例,在一行中按普通數字表示法輸出 a,並保證所有有效位都被保留,包括末尾的 0。
輸入樣例 1:
+1.23400e-03
輸出樣例 1:
0.00123400
輸入樣例 2:
-1.2e+10
輸出樣例 2:
-12000000000\
string substr (size_t pos = 0, size_t len = npos) const;
其中pos指起始位置,len指擷取長度。
擷取後面部分作為指數,以int儲存,用到了stoi函式:
int stoi (const string& str, size_t* idx = 0, int base = 10);
int stoi (const wstring& str, size_t* idx = 0, int base = 10);
最後根據所得指數和底數,控制輸出即可。
#include
#include
using
namespace std;
intmain()
int pos = s.
find
('e');
string numstring = s.
substr(1
, pos -1)
;int exp =
stoi
(s.substr
(pos+
2, s.
length()
- pos -1)
);if(exp==0)
else
cout << numstring[0]
<< numstring.
substr(2
, numstring.
length()
-2);
}else
if(ilength()
)else}}
}return0;
}
1024 科學計數法 20分 PAT乙級真題
1024 科學計數法 20分 科學計數法是科學家用來表示很大或很小的數字的一種方便的方法,其滿足正規表示式 1 9 0 9 e 0 9 即數字的整數部分只有 1 位,小數部分至少有 1 位,該數字及其指數部分的正負號即使對正數也必定明確給出。現以科學計數法的格式給出實數 a,請編寫程式按普通數字表示...
PAT 乙級1024 科學計數法
科學計數法是科學家用來表示很大或很小的數字的一種方便的方法,其滿足正規表示式 1 9 0 9 e 0 9 即數字的整數部分只有 1 位,小數部分至少有 1 位,該數字及其指數部分的正負號即使對正數也必定明確給出。現以科學計數法的格式給出實數 a,請編寫程式按普通數字表示法輸出 a,並保證所有有效位都...
PAT 乙級 1024 科學計數法
科學計數法是科學家用來表示很大或很小的數字的一種方便的方法,其滿足正規表示式 1 9 0 9 e 0 9 即數字的整數部分只有 1 位,小數部分至少有 1 位,該數字及其指數部分的正負號即使對正數也必定明確給出。現以科學計數法的格式給出實數 a,請編寫程式按普通數字表示法輸出 a,並保證所有有效位都...