题目地址
上面的精简写法:

#include<cstdio>
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
bool flag1,flag2;//正代表正  负代表负
string s,ans;
int step1,step2;
int sum;
void slove()
{if(!flag2)  reverse(ans.begin(),ans.end());string temp;if(sum>ans.size()) {temp+=ans;for(int i=1;i<=sum-ans.size();i++) temp+='0'; if(!flag2){reverse(temp.begin(),temp.end());cout<<"0.";}cout<<temp<<endl;}else{for(int i=0;i<sum;i++) temp+=ans[i];if(sum!=ans.size()) temp+=".";for(int i=sum;i<ans.size();i++) temp+=ans[i];if(!flag2)reverse(temp.begin(),temp.end());cout<<temp<<endl;}
}
int main(void)
{cin>>s; if(s[0]=='+') flag1=true;//处理第一个正负号 else cout<<'-';s=s.substr(1);ans+=s[0]; s=s.substr(2);//处理小数点 for(int i=0;s[i]!='E';i++)  ans+=s[i];//将所有的数字相加 if(s.find('+')!=-1) flag2=true,step1=1,s=s.substr(s.find('+')+1),sum=stoi(s);//处理进位 else step2=ans.size()-1,s=s.substr(s.find('-')+1),sum=stoi(s);if(flag2) sum+=step1;else sum+=step2;slove();return 0;
}
#include<cstdio>
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
string s,ans;
bool flag;
int step1,step2;
int sum;
void slove()
{string temp;if(!flag) reverse(ans.begin(),ans.end());if(sum>=ans.size()) {temp+=ans;for(int i=1;i<=sum-ans.size();i++) temp+='0';if(!flag) temp+=".0";}else{for(int i=0;i<sum;i++) temp+=ans[i];temp+='.';for(int i=sum;i<=ans.size();i++) temp+=ans[i];} if(!flag) reverse(temp.begin(),temp.end());cout<<temp<<endl;
}
int main(void)
{cin>>s;  if(s[0]=='-') cout<<'-';s=s.substr(1);ans+=s[0];s=s.substr(2);for(int i=0;s[i]!='E';i++) ans+=s[i];if(s.find('-')!=-1) step2=ans.size()-1,sum=stoi(s.substr(s.find('-')+1)),sum+=step2;else flag=true,step1=1,sum=stoi(s.substr(s.find('+')+1)),sum+=step1;slove();return 0;
}
#include<bits/stdc++.h>
using namespace std;
int main(void)
{string s,a; cin>>s;if(s[0]=='-') cout<<"-";s=s.substr(1);int n;//需要移动的位数。for(int i=0;i<s.size();i++){if(s[i]>='0'&&s[i]<='9') a+=s[i];if(s[i]=='E') break;}n=stoi(s.substr(s.find('E')+1));if(n<0){cout<<"0.";for(int i=0;i<abs(n)-1;i++) cout<<0;for(int i=0;i<a.size();i++) cout<<a[i];}else{n++;if(n<a.size()){for(int i=0;i<n;i++) cout<<a[i];cout<<".";for(int i=n;i<a.size();i++) cout<<a[i];}else{cout<<a;for(int i=0;i<n-a.size();i++) cout<<0;}}
}

【PAT乙级】1024 科学计数法 (20 分)相关推荐

  1. PAT乙级 1024 科学计数法 (20 分)

    题目内容 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [+-][1-9].[0-9]+E[+-][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该 ...

  2. C++学习之路 | PTA乙级—— 1024 科学计数法 (20 分)(精简)

    1024 科学计数法 (20 分) 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+,即数字的整数部分只有 1 位,小数 ...

  3. PAT 1024 科学计数法 (20分) C语言实现

    1024 科学计数法 (20分) 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+,即数字的整数部分只有 1 位,小数部 ...

  4. PAT乙级 1024. 科学计数法 (C语言)

    1024. 科学计数法 (20) 题目: 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+,即 ...

  5. PAT乙级 1024 科学计数法 python

    题目 1024 科学计数法 分数 20 作者 HOU, Qiming 单位 浙江大学 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[± ...

  6. 【PAT (Basic Level) 】1024 科学计数法 (20 分)

    科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指数部 ...

  7. 测试点错的来:1024 科学计数法 (20分)

    立志用更少的代码做更高效的表达 PAT乙级最优题解-->传送门 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+, ...

  8. 科学技术法c语言字符串,PAT Basic 1024. 科学计数法 (20)(C语言实现)

    我的PAT系列文章更新重心已移至Github,欢迎来看PAT题解的小伙伴请到Github Pages浏览最新内容.此处文章目前已更新至与Github Pages同步.欢迎star我的repo. 题目 ...

  9. 1024 科学计数法 (20 分)(c语言)

    科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [+-][1-9].[0-9]+E[+-][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指 ...

  10. PAT乙级(1024 科学计数法)

    科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [+-][1-9].[0-9]+E[+-][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指 ...

最新文章

  1. Word2003文档打不开怎么办?1分钟帮你解决!
  2. 散户“大溃败”?GME连续5日暴跌80% 白银价格急转直下
  3. 提高搜索引擎结果页面排名的各种技术
  4. 深度学习蚕食软件,十年内大部分软件工作不再涉及编程
  5. Linux记录-重启后磁盘丢失问题解决方案
  6. c语言 游程编码,游程编码C语言.doc
  7. nacos 默认 namespace: public 拿不到数据
  8. 金蝶迷你版所有数据引出excel没有反应,如何处理
  9. mysql emoji表情 保存utf8mb4 错误原因总结
  10. 再探JS---eval函数
  11. Ubuntu18.04 没有有以太网连接的解决办法
  12. Android色彩特效处理之色调、饱和度、亮度、ColorMatrix精炼详解
  13. pandas插入新数据及pandas
  14. DOM解析与DOM4J
  15. 程序打包之由于dll缺失导致的无法运行问题
  16. c语言入门经典第五版自学,C语言入门经典(第5版) PDF扫描[103MB]
  17. java中word导入数据库
  18. cadence sip报错_cadenceIC610安装错误总结(四)(图文教程)
  19. 新版FPC摄像头测评 OV7725 OV7670 OV9650 OV9655 OV5640 OV5642 OV2640 OV3640 MT9D112
  20. python能制作游戏吗_python怎么制作游戏脚本

热门文章

  1. content type 介绍
  2. CentOS最小化系统,怎么安装图形界面
  3. Lazy WriterCheckPoint
  4. BEx Query Designer中的变量及其增强
  5. 围观窗体与组件03 - 零基础入门学习Delphi25
  6. Java自带的多线程监控分析工具(VisualVM)
  7. Access转Sql Server问题
  8. SD2C大会,JavaScript + Delphi + ErLang 讲演相关资料完全公开!
  9. ST17H26读ID卡调试过程
  10. android6鼠标驱动,USB鼠标按键驱动(示例代码)