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 科學計數法
- PTA乙級_1024 科學計數法 (20分)_pythonPython
- 【PAT乙級、C++】1024 科學計數法 (20分)C++
- PAT-B 1084 外觀數列 【模擬】
- PAT-B 1072 開學寄語【模擬】
- PAT-B 1019 數字黑洞【陣列+模擬】陣列
- PAT-B 1017 A除以B【模擬 大數除法】
- PAT-B 1012 數字分類【簡單模擬】
- PAT-B 1077 互評成績計算【模擬】
- PAT-B 1027 列印沙漏 【模擬】
- PAT-B 1048 數字加密【字串】加密字串
- 科學計數法字串轉為對應的十進位制程式-C程式碼字串C程式
- PAT-B 1058 選擇題 【模擬】
- PAT-B 1061 判斷題【模擬】
- PAT-B 1067 試密碼【模擬】密碼
- PAT-B 1071 小賭怡情【模擬】
- PhpSpreadsheet 怎麼設定 數字不是科學計數法PHP
- PAT-B 1054 求平均值 【模擬】
- PAT-B 1081 檢查密碼【模擬】密碼
- PAT-B 1085 PAT單位排行【模擬】
- PAT-B 1018 錘子剪刀布 【模擬】
- Optimus—多學科模擬整合與最佳化設計平臺
- PAT-B 1059 C語言競賽【模擬】C語言
- R語言中如何將科學計數法轉換為數值型R語言
- hduoj1002 A + B Problem II (大數相加 字串模擬)字串
- PAT-B 1079 延遲的迴文數【字串+大數加法】字串
- Maple—多領域系統級建模模擬和科學計算軟體
- TISC—系統多學科協同模擬平臺
- TISC — 系統多學科協同模擬平臺
- noip模擬32[好數學啊]
- 垂直柱狀圖(模擬+字串)字串
- PAT-B 1025 反轉連結串列【模擬+對映】
- PAT-B 1069 微博轉發抽獎【模擬+集合】
- PAT-B 1002 寫出這個數 【字串+遞迴列印】字串遞迴
- PAT-B 1078 字串壓縮與解壓【字串】字串
- 模擬退火與爬山法
- PAT-B 1029 舊鍵盤【字串】字串
- PAT-B 1093 字串A+B 【集合】字串