ZSTUOJ 4360 科學計數法

2021-08-13 07:00:42 字數 1315 閱讀 5848

description

科學計數法是將乙個數字表示成 a×10的n次方的形式.其中1≤|a|<10,n為整數。

我們給你乙個數x, 請把它用科學計數法表示出來,並保留 k 位有效數字。

有效數字是指在乙個數中,從該數的第乙個非零數字起,直到末尾數字止的數字稱為有效數字,如0.618的有效數字有三個,分別是6,1,8。(不用考慮四捨五入)

input

多組測試資料(組數<=100)。

每組輸入形如:

x k

0< x< 10^120, 0< k<20, 注意讀入的數字可能會有前置0。

output

請輸出對應的科學計數後的數。

sample input

1030 3

1000 2

0.0032 3

sample output

1.03e3

1.0e3

3.20e-3

比賽的時候wa了好多發,考慮各種情況,各種判斷,emmm大概是最麻煩的方法了

不考慮四捨五入,可用字串輸入

#include 

#include

#include

#include

#include

#include

using

namespace

std;

int main()

else

if(st[i]!='0'&&flag==false)//flag用於判斷是否第一次讀取非零字元

}int tmp=firstpos;//儲存第乙個非零字元的位置

cout

if(k!=1)

for(int i=1;i//k為有效數字數,因為已經輸出一位有效數字,故迴圈次數只需k-1次

if(firstpos+1>len-1)//超出字串長度用0代替

else

if(st[firstpos+1]!='.')//輸出不是小數點的字元

firstpos++;

}if(pointpos==0)//不存在小數點

1024 科學計數法

科學計數法是科學家用來表示很大或很小的數字的一種方便的方法,其滿足正規表示式 1 9 0 9 e 0 9 即數字的整數部分只有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,並保證所有有效位都被保留。輸入...