PAT-B 1024 科學計數法【模擬+字串】
PAT-B 1024 科學計數法
https://pintia.cn/problem-sets/994805260223102976/problems/994805297229447168
題目
科學計數法是科學家用來表示很大或很小的數字的一種方便的方法,其滿足正規表示式 [+-][1-9].
[0-9]+E[+-][0-9]+,即數字的整數部分只有 1 位,小數部分至少有 1 位,該數字及其指數部分的正負號即使對正數也必定明確給出。現以科學計數法的格式給出實數 A,請編寫程式按普通數字表示法輸出 A,並保證所有有效位都被保留。
輸入
每個輸入包含 1 個測試用例,即一個以科學計數法表示的實數 A。該數字的儲存長度不超過 9999 位元組,且其指數的絕對值不超過 9999。
輸出
對每個測試用例,在一行中按普通數字表示法輸出 A,並保證所有有效位都被保留,包括末尾的 0。
樣例輸入
+1.23400E-03
樣例輸出
0.00123400
分析
模擬+字串,註釋很清楚,具體看程式。
C++程式
#include<iostream>
using namespace std;
const int N=10005;
int main()
{
char s1,s2;//s1數符,s2階符
char M[N],E[N];//M[]尾數,E[]指數
s1=getchar();//讀入數符
int k1=0,k2=0;//分別表示M[]、E[]的元素個數
int pos=-1;//表示小數點的位置
char ch;
while((ch=getchar())!='E')
{
if(ch=='.')
{
pos=k1;//小數點在第k1個數字後面
continue;
}
M[k1++]=ch;
}
s2=getchar();//讀入階符
while((ch=getchar())!='\n')
E[k2++]=ch;
//計算指數的值
int t=0;
for(int i=0;i<k2;i++)
t=t*10+E[i]-'0';
if(s1=='-') putchar(s1);//當數符為負的時候才輸出
int sum=pos+(s2=='+'?t:-t);//要輸出的整數部分的位數
if(sum<=0)//位數為負,表明要前補零
{
int temp=-sum;
//位數不夠,補零
printf("0.");
for(int i=0;i<temp;i++)
putchar('0');
for(int i=0;i<k1;i++)
putchar(M[i]);
}
else if(0<sum&&sum<=k1)
{
for(int i=0;i<k1;i++)
{
if(i==sum) putchar('.');//小數點在第sum個數的後面
putchar(M[i]);
}
}
else//大於k1,表明要後補零
{
for(int i=0;i<k1;i++)
putchar(M[i]);
//補零
for(int i=k1;i<sum;i++)
putchar('0');
}
putchar('\n');
return 0;
}
相關文章
- 1024 科學計數法
- 【PAT乙級、C++】1024 科學計數法 (20分)C++
- PTA乙級_1024 科學計數法 (20分)_pythonPython
- 【Codeforces Round 362 (Div 2)B】【模擬】Barnicle 科學計數法轉普通表示法
- PAT-B 1019 數字黑洞【陣列+模擬】陣列
- 演算法學習之路|科學計數法演算法
- PAT-B 1048 數字加密【字串】加密字串
- PAT-B 1077 互評成績計算【模擬】
- 科學計數法字串轉為對應的十進位制程式-C程式碼字串C程式
- PAT-B 1067 試密碼【模擬】密碼
- Optimus—多學科模擬整合與最佳化設計平臺
- PAT-B 1059 C語言競賽【模擬】C語言
- PAT-B 1081 檢查密碼【模擬】密碼
- 在SQL PLUS 顯示數值型 遮蔽科學計數法SQL
- 如何判斷字串是否為合法數值、浮點、科學計數等格式字串
- PhpSpreadsheet 怎麼設定 數字不是科學計數法PHP
- PL/SQL DEVELOPER數字超長顯示了科學計數法SQLDeveloper
- TISC — 系統多學科協同模擬平臺
- TISC—系統多學科協同模擬平臺
- noip模擬32[好數學啊]
- Maple—多領域系統級建模模擬和科學計算軟體
- R語言中如何將科學計數法轉換為數值型R語言
- 垂直柱狀圖(模擬+字串)字串
- 用js實現將float型的科學計數法數字還原為正常寫法JS
- PAT-B 1079 延遲的迴文數【字串+大數加法】字串
- Python科學計算——任意波形擬合Python
- 光學數字孿生系統模擬
- YT15-HDU-字串的模擬字串
- elixir模擬ruby快速複製字串字串
- 網頁 HTML 匯出 excel 數字 變成 科學計數法 的解決 方案網頁HTMLExcel
- 模擬退火與爬山法
- hduoj1002 A + B Problem II (大數相加 字串模擬)字串
- UVALive 7511 Multiplication Table (數學模擬題)
- Speos — 光學產品設計模擬工具
- PAT-B 1078 字串壓縮與解壓【字串】字串
- PAT-B 1002 寫出這個數 【字串+遞迴列印】字串遞迴
- Composition實現科學文字計數器
- Python 設定numpy不以科學計數法儲存和顯示的方法Python