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乙级1024. 科学计数法 (20)
- 1024. 科学计数法 (20)-PAT乙级真题
- 编程题目: PAT 1024. 科学计数法 (20)
- Java - PAT - 1024. 科学计数法 (20)
- PAT_乙级 1024 科学计数法
- 浙大 PAT 1024. 科学计数法 (20)
- PAT BASIC LEVEL 1024. 科学计数法 (20)
- PAT1024 科学计数法
- 编程题目: PAT 1024. 科学计数法 (20)
- PAT (Basic Level) Practise (中文)1024. 科学计数法 (20)
- PAT 1024. 科学计数法
- 【PAT】(乙级)1024. 科学计数法 (20)
- PAT-B 1024. 科学计数法(同PAT 1073. Scientific Notation)
- pat 乙级 1024. 科学计数法 (20)
- PAT-B 1024. 科学计数法 (20)
- PAT——1024. 科学计数法
- PAT (Basic Level) Practise (中文)- 1024. 科学计数法 (20)
- PAT乙级 1024. 科学计数法 (20)
- Pat(Basic Level)Practice--1024(科学计数法)
- PAT 乙级 1024. 科学计数法