演算法筆記 B1024 科學計數法

2021-09-19 02:59:34 字數 1215 閱讀 3808

1024 科學計數法 (20 分)

科學計數法是科學家用來表示很大或很小的數字的一種方便的方法,其滿足正規表示式 [+-][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

本題有好多情況,漏掉就很容易扣分,先計算指數e和e的位置pos

指數為0(不考慮也能ac)

指數為負數:輸出0.00···0***,中間有e-1個0,後面***部分是e前面所有數字

指數為正數:

e比較小,轉換後還有小數點

轉換後正好沒有小數點

e比較大,轉換後需要補0

code:

#include#include

using

namespace

std;

intmain()

if(s[0]=='

-') cout<<"-"

;

//指數為負

for(int i = pos + 2;i < strlen(s); i++)

if(e == 0

) }

if(s[pos+1] == '-'

) printf("%c

",s[1

]);

for(int i = 3; i < pos; i++)

}else

if(e > 0

) }

}return0;

}

posted @

2019-03-17 16:32

resfeber 閱讀(

...)

編輯收藏

B1024 科學計數法

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

1024 科學計數法

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

1024 科學計數法

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