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#includeusing
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,並保證所有有效位都被保留。輸入...