科学计数法的值"/>
C++ PTA 科学计数法的值
科学计数法的值
科学计数法是一种数学专用术语。将一个数表示成 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
分析
#include<iostream>
#include<string>
using namespace std;int main(){string s,x1,x2;char flag;cin>>s;cout<<"The actual value for "<<s<<" is ";if(s[0]=='-'){cout<<"-";x1=s[1]; flag=s[2];x2=s.substr(s.find(".")+1,s.find("*")-3);}else{x1=s[0];flag=s[1];x2=s.substr(s.find(".")+1,s.find("*")-2);}//cout<<" x1= ";cout<<x1;string z=s.substr(s.find("^")+1);if(flag=='.'){ //有小数点//cout<<" xx2= ";//cout<<x2;//cout<<" xx22= ";int count=stoi(z)-x2.length();if(count>=0){//cout<<" x2= ";cout<<x2;for(int i=0;i<count;i++){//cout<<" x0= ";cout<<"0";}} else{//cout<<" x22= ";cout<<x2.substr(0,stoi(z))<<"."<<x2.substr(stoi(z));}}else{ //无小数点int count=stoi(z);for(int i=0;i<count;i++){//cout<<" x0= ";cout<<"0";}}return 0;
}
参考资料:
- PTA 1024 科学计数法(c/c++)
- PTA 科学计数法 (20分)
- C++中substr()函数用法详解
- #include下的str.find()函数
- C++ 中 String 与 int 类型互相转换的方式
- C++将string转为int
- stoi()函数的使用
- Dev-c++下’stoi’ was not declared in this scope解决办法
更多推荐
C++ PTA 科学计数法的值
发布评论