PAT 1024. 科学计数法
来源:互联网 发布:招商银行炒股软件 编辑:程序博客网 时间:2024/06/06 07:30
题目:http://pat.zju.edu.cn/contests/pat-b-practise/1024
题解:
将输入的科学计数法数字转换为正常的数字。
分子分母至少有1位。
按指数的正负分情况处理即可。
代码:
#include<cstdio>#include<cstring>#include<cmath>#include<string>#include<vector>#include<map>#include<set>#include<algorithm>using namespace std;int charToInt(char *x){ int len=strlen(x); int summ=0; for(int i=0; i<len; ++i) { summ*=10; summ+=(x[i]-'0'); } return summ;}int main(){ char ch[210000]; char a[200000];//底数 char b[10000];//指数 char flagA,flagB;//符号 int lenA=0,lenB=0,lenC,intB; int idx=-1;//点的位置 scanf("%s",ch); flagA=ch[0]; lenC=strlen(ch); bool flag=true; for(int i=1; i<lenC; ++i) { if(ch[i]=='.') { idx=i-1; } else if(ch[i]=='E') { flag=false; } else if(ch[i]=='+'||ch[i]=='-') { flagB=ch[i]; } else if(flag) { a[lenA++]=ch[i]; } else { b[lenB++]=ch[i]; } } intB=charToInt(b); if(flagA=='-') printf("-"); //printf("%d %d %d %d\n",lenA,lenB,idx,intB); if(flagB=='+') { flag=false; idx+=intB; for(int i=1; i<=lenA; ++i) { if(i<idx) { if(a[i-1]=='0'&&flag==false) continue; else { printf("%c",a[i-1]); flag=true; } } else if(i==idx) { if(i==lenA) printf("%c",a[i-1]); else printf("%c.",a[i-1]); } else printf("%c",a[i-1]); } for(int i=0; i<idx-lenA; ++i) printf("0"); } else { flag=false; idx-=intB; if(idx<=0) { printf("0."); for(int i=0; i<-idx; ++i) printf("0"); for(int i=0; i<lenA; ++i) printf("%c",a[i]); } else { for(int i=1; i<=lenA; ++i) { if(i<idx) { if(a[i-1]=='0'&&flag==false) continue; else { printf("%c",a[i-1]); flag=true; } } else if(i==idx) { printf("%c.",a[i-1]); } else printf("%c",a[i-1]); } } } return 0;}
来源:http://blog.csdn.net/acm_ted/article/details/20383881
0 0
- PAT 1024. 科学计数法
- PAT 1024. 科学计数法
- PAT 1024. 科学计数法
- 浙大 PAT 1024. 科学计数法 (20)
- PAT 1024. 科学计数法 (20)
- PAT (Basic Level)1024. 科学计数法
- PAT 乙级 1024. 科学计数法
- PAT-B 1024. 科学计数法
- PAT-乙级-1024. 科学计数法 (20)
- PAT-B 1024. 科学计数法
- PAT(B) - 1024. 科学计数法 (20)
- Java - PAT - 1024. 科学计数法 (20)
- PAT乙级.1024. 科学计数法 (20)
- pat 乙1024. 科学计数法
- PAT乙级 1024. 科学计数法 (20)
- PAT 乙级 1024. 科学计数法 (20)
- PAT-B 1024. 科学计数法 (20)
- PAT 乙级 1024. 科学计数法 (20)
- [垃圾microsoft, 要啥缺啥] 如何设置缺省输入法
- sqlserver数据导到mysql数据库的环境配置
- EditPluss有效激活码
- 计算机
- 菜鸟是如何使用servlet的最基本内容
- PAT 1024. 科学计数法
- 基于Highcharts绘制差值连接线
- 百度地图新版key中配置SHA1值
- JSON详解
- IT高薪者所具备的人格魅力
- Invalidate,RedrawWindow
- 解决Ubuntu忘记用户名的问题
- 【C语言】11-指针
- 简单介绍Hadoop学习思路