PAT乙1024 科學計數法

2021-10-02 14:42:14 字數 1030 閱讀 5039

科學計數法是科學家用來表示很大或很小的數字的一種方便的方法,其滿足正規表示式 [+-][1-9].[0-9]+e[+-][0-9]+,即數字的整數部分只有 1 位,小數部分至少有 1 位,該數字及其指數部分的正負號即使對正數也必定明確給出。

現以科學計數法的格式給出實數 a,請編寫程式按普通數字表示法輸出 a,並保證所有有效位都被保留。

每個輸入包含 1 個測試用例,即乙個以科學計數法表示的實數 a。該數字的儲存長度不超過 9999 位元組,且其指數的絕對值不超過 9999。

對每個測試用例,在一行中按普通數字表示法輸出 a,並保證所有有效位都被保留,包括末尾的 0。

+1.23400e-03
0.00123400
-1.2e+10
-12000000000
這題主要是找輸出的規律:

1)第乙個字母如果是負號,那麼輸出的結果就是帶負號的。

2)e後面的那個符號如果是負號,那麼就把小數點後面的數字往後移,同時也要移動第乙個數字,並且在小數點後面加0。輸出的方式先把「0.」輸出,然後根據e後面數字的多少加0即可。最後再把小數點前後的數字以此輸出。

3)e後面個符號如果是正號,相對會麻煩一點,要進行討論,即小數點是否會在移動的過程中消失,分別進行討論,並在不同的情況下輸出不同的結果。

本題的細節點在於求解e的位置和e後面的數字,這是本題的乙個小的關鍵。用字元陣列的方式把資料存下來,然後把e的位置找出,這樣就便於進行字元的定位了。細節見**。

#include #include using namespace std;

void output(char ch, int start, int end);

int main()

else

else

}return 0;

}void output(char ch, int start, int end)

pat乙1024 科學計數法

include include using namespace std bool isnumber char c 判斷是否為數字 intmain else if line i 去掉小數點 else if line i e 指數部分 else if line i 指數為正 else if line i...

PAT乙1024 科學計數法 20

題目在這裡 時間限制 100 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 hou,qiming 科學計數法是科學家用來表示很大或很小的數字的一種方便的方法,其滿足正規表示式 1 9 0 9 e 0 9 即數字的整數部分只有1位,小數部分至少有1位,該...

PAT 乙級1024 科學計數法

科學計數法是科學家用來表示很大或很小的數字的一種方便的方法,其滿足正規表示式 1 9 0 9 e 0 9 即數字的整數部分只有 1 位,小數部分至少有 1 位,該數字及其指數部分的正負號即使對正數也必定明確給出。現以科學計數法的格式給出實數 a,請編寫程式按普通數字表示法輸出 a,並保證所有有效位都...