PAT1024 科学计数法
2014-05-18 21:01
232 查看
不知道语言内部到底怎么处理的,总觉得充满艺术性
#include<iostream> #include<string> using namespace std; int main(){ if(cin.get()=='-') cout<<'-'; string st;//9999位小于string::npos getline(cin,st,'E'); int n; //9999小于INT_MAX cin>>n; if(n<0){ //小数点往左,左边只有一位 st="0."+string(-n-1,'0')+st; st.erase(st.rfind('.')+st.begin()); } else{ //小数点往右,右边有很多位 int it=st.find('.'); int m=st.size()-it-1; //m是小数点右边的数字位数 if(m<n) st+=string(n-m,'0'); else if(m>n) st.insert(st.begin()+it+n+1,'.');//若st.insert(st.begin()+it+n,'.');n==1就错了,看准插入位置 st.erase(st.find('.')+st.begin()); it=st.find_first_not_of("0"); //整理 if(it==string::npos) st="0"; else if(it>1) st.erase(st.begin(),st.begin()+it); } cout<<st; return 0;}
相关文章推荐
- PAT BASIC LEVEL 1024. 科学计数法 (20)
- PAT-B 1024. 科学计数法(同PAT 1073. Scientific Notation)
- PAT 1024. 科学计数法
- 【PAT】(乙级)1024. 科学计数法 (20)
- Pat(Basic Level)Practice--1024(科学计数法)
- pat 乙级 1024. 科学计数法 (20)
- PAT-B 1024. 科学计数法 (20)
- PAT——1024. 科学计数法
- PAT (Basic Level) Practise (中文)- 1024. 科学计数法 (20)
- PAT乙级 1024. 科学计数法 (20)
- PAT 1024. 科学计数法 (20)
- PAT 乙级 1024. 科学计数法 (20)
- PAT 乙级 1024. 科学计数法
- PAT (Basic Level) Practise (中文)1024. 科学计数法 (20)
- PAT-乙级-1024. 科学计数法 (20)
- PAT乙级 1024. 科学计数法 (C语言)
- PAT Basic 1024. 科学计数法 (20)(C语言实现)
- pat_b_1024 科学计数法
- 1024. 科学计数法 (20)--PAT乙级
- PAT-B 1024. 科学计数法