您的位置:首页 > 其它

pat_b_1024 科学计数法

2014-10-28 14:50 218 查看
 

             http://pat.zju.edu.cn/contests/pat-b-practise/1024

             分析: 各类情况分清

            代码:

                          //D½øÖÆA+B
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <string>
#include <stdlib.h>
using namespace std;
#define ll long long

string s,ans;
int cnt,n;
char op;
bool flag;

void show()
{
if(n==0){
cout<<ans[0]<<".";
for(int i=1;i<ans.size();i++) cout<<ans[i];
cout<<endl;
return;
}
int t;
if(flag){ // >0
t=n;
if(t<ans.size()-1){
cout<<ans[0];
int i=1;
while(t--) cout<<ans[i++];
cout<<'.';
for(;i<ans.size();i++) cout<<ans[i];
}
else{
cout<<ans;
for(int i=0;i<t-ans.size()+1;i++) cout<<0;
}
}
else{ // <0
cout<<"0.";
t=n-1;
while(t--) printf("0");
cout<<ans;
}
cout<<endl;
}

int main()
{
freopen("in.txt","r",stdin);

int i;
string s,ss;
cin>>s;

op=s[0];
i=1;
flag=1;
n=cnt=0;

for(;i<s.size();i++){
if(s[i]=='E') break;
if(s[i]=='.') continue;
ans +=s[i];
cnt++;
}
if(s[++i]=='-') flag=0;
ss = s.substr(i+1,s.size()-1-i);
n=atoi(ss.c_str());
if(op=='-') cout<<'-';
show();
return 0;
}

               
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  pat_b