您的位置:首页 > 其它

Codeforces-697B Barnicle(模拟)

2016-10-24 22:26 489 查看
题意是将一个数字的科学计数法转化为完整数字,模拟即可,不过要注意左0右0等等特殊情况,之前开始是用的一个个字符读入进字符数组然后进行分类讨论很复杂,后来发现直接读入字符串进行统一的划分操作即可

#include"iostream"
#include"stdlib.h"
#include"string"
using namespace std;
string s;
string a,d,c;
int b;
int main()
{
cin>>s;
a=s[0];
d=s.substr(2,s.find('e')-2);
c=s.substr(s.find('e')+1,s.length()-s.find('e'));
b=atoi(c.c_str())+1;
/*cout<<a<<endl;
cout<<b<<endl;
cout<<c<<endl;
cout<<d<<endl;
cout<<endl;*/

a+=d;
while(a.length()<b) a+='0';
//cout<<a<<endl;
a=a.substr(0,b)+'.'+a.substr(b,a.length()-b);
//cout<<a<<endl;
int l=0;
while(a[0]=='0') { a=a.substr(1,a.length()-1); l++;}
// cout<<a<<endl;
l=a.length()-1;
while(a[a.length()-1]=='0') { a=a.substr(0,a.length()-1); l--;}
// cout<<a<<endl;
if(a[0]=='.') a='0'+a;
if(a[a.length()-1]=='.') a=a.substr(0,a.length()-1);
cout<<a<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: