7-8 科学计数法的值 (8 分)
科学计数法是一种数学专用术语。将一个数表示成 a×10的n次幂的形式,其中1≤|a|<10,n为整数,这种记数方法叫科学计数法。例如920000可以表示为9.2*10^5
现在需要对输入的字符串进行分离,自动识别该科学计数法中的a和幂次,计算其表征的具体数值并输出该值。
例如,对于输入的复数字符串“9.210^5”,输出 The actual value for 9.210^5 is 920000
注意:
1、每组测试数据仅包括一个用于科学计数法的字符串。
2、输入字符串保证合法。
3、字符串长度不超过1000
4、幂次不超过200
输入示例:
9.2*10^5
输出示例:
The actual value for 9.2*10^5 is 920000
作者
余春艳
单位
福州大学
代码长度限制
1000 KB
时间限制
10000 ms
内存限制
64 MB
#include<iostream>
#include<string.h>
#include<math.h>
#include <iomanip>
using namespace std;
int aa(){
double n=0.00;
int a,b;
cin>>n;
string n_str=to_string(n);
for(int i=n_str.length()-1;i>0;i--){
if(n_str[i]=='0' || n_str[i]=='.'){
n_str.pop_back();
}
else{
break;
}
}
cout << fixed;
cout << setprecision(0);
getchar();
cin>>a;
getchar();
cin>>b;
char d[1000];
string c=to_string(n*pow(10,b));
for(int i=n_str.length();i<c.length()-7;i++){
c[i]='0';
}
for(int i=0;i<7;i++){
c.pop_back();
}
cout<<"The actual value for "<<n_str<<"*10^"<<b<<" is "<<c<<endl;
aa();
return 0;
}
int main(){
aa();
}