日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

算法题:科学计数法

發(fā)布時(shí)間:2023/12/16 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 算法题:科学计数法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目描述

科學(xué)計(jì)數(shù)法是科學(xué)家用來表示很大或很小的數(shù)字的一種方便的方法,其滿足正則表達(dá)式[+-][1-9]”.”[0-9]+E[+-][0-9]+,即數(shù)字的整數(shù)部分

只有1位,小數(shù)部分至少有1位,該數(shù)字及其指數(shù)部分的正負(fù)號(hào)即使對(duì)正數(shù)也必定明確給出。

現(xiàn)以科學(xué)計(jì)數(shù)法的格式給出實(shí)數(shù)A,請(qǐng)編寫程序按普通數(shù)字表示法輸出A,并保證所有有效位都被保留。

輸入描述:

每個(gè)輸入包含1個(gè)測(cè)試用例,即一個(gè)以科學(xué)計(jì)數(shù)法表示的實(shí)數(shù)A。該數(shù)字的存儲(chǔ)長(zhǎng)度不超過9999字節(jié),且其指數(shù)的絕對(duì)值不超過9999。

輸出描述:

對(duì)每個(gè)測(cè)試用例,在一行中按普通數(shù)字表示法輸出A,并保證所有有效位都被保留,包括末尾的0。

輸入例子:
+1.23400E-03

輸出例子:
0.00123400

#include <iostream> #include <string.h> using namespace std; int GetNum(char *str) {char *p = str;int count = 0;while (*p == '0')p++;while (*p != NULL){count = count * 10 + *p - '0';p++;}return count; } void SetStr(char *&str, int n) {string s;char *s1 = strtok(str, ".");int len1 = 0;if (s1[0] == '+' || s1[0] == '-'){if (s1[0] == '-'){s += '-';s1++;}if (s1[0] == '+')s1++;len1 = strlen(s1);}else len1 = strlen(s1);if (n < len1){int i = len1 - n;while (i--){s += *s1;s1++;}s += '.';s += s1;}else{s += "0.";int i = n - len1;while (i--){s += '0';}s += s1;}s1 = strtok(NULL, "\0");if (s1!=NULL)s += s1;cout << s.c_str() << endl; } void SetTtr(char *str,int n) {string s;if (str[0] == '+' || str[0] == '-'){if (str[0] == '-'){s += '-';}str++;}char *s1 = strtok(str,".");if (strlen(s1) == n){s += s1;while (n--){s += '0';}}else{s += s1;s1 = strtok(NULL,"\0");while (*s1!='\0' && n--){s += *s1;s1++;}if (*s1 == '\0'){while (n--){s += '0';}}else{s += '.';s += s1;}}cout << s.c_str() << endl; } int main() {char inputStr[10000];cin >> inputStr;char *s1 = strtok(inputStr,"E");char *saveStr1 = new char[strlen(s1)+1];strcpy(saveStr1,s1);s1 = strtok(NULL,"\n");char *saveStr2 = new char[strlen(s1) + 1];strcpy(saveStr2,s1);char ch = saveStr2[0];int N;char *p = NULL;switch (ch){case '+':p = saveStr2;N = GetNum(++p);SetTtr(saveStr1, N);break;case '-':p = saveStr2;N = GetNum(++p);SetStr(saveStr1,N);break;default:break;}return 0; }

總結(jié)

以上是生活随笔為你收集整理的算法题:科学计数法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。