首页 > 学院 > 开发设计 > 正文

PAT1024.科学计数法

2019-11-08 18:32:46
字体:
来源:转载
供稿:网友

写这个题的时候头昏脑胀,思路很不清晰,写的代码很复杂,效果还不好,参考了下面的程序。整个思路比较不错,分享一下。

链接如下:http://www.ithao123.cn/content-10177836.html

#include <iostream>#include <string>#include <sstream>using namespace std;int main(){	string s;	cin>>s;	int index;	index = s.find('E');	string num = s.substr(1,index-1);	string e = s.substr(index+1);	int exp;	stringstream ss;	ss<<e;	ss>>exp;	if( exp>= 0)	{		if(s[0] == '-')			cout << '-';		++exp;		bool flag = true;		for(int i=0;i<num.length();++i)		{			if( num[i] == '0' && flag)			{				--exp;			}			else if(num[i] != '.')			{				flag = false;				cout<<num[i];				--exp;			}			if (exp == 0 && i != num.length()-1)				cout<<'.';		}		while(exp >= 0 && exp--)		{			cout<<'0';		}	}	else 	{		if(s[0] == '-')			cout<<'-';		cout << "0.";		++exp;		while(exp++)		{			cout<<'0';		}				for(int i=0;i<num.length();++i)		{			if(num[i] != '.')				cout<<num[i];		}	}	return 0;}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表