PAT B1024/A1073 科学计数法
书中AC代码
#include <cstdio>
#include <cstring>
#include <iostream>
#include <cmath>
const int max_n = 10100;
using namespace std;
void Print(bool a) {
if(!a) printf("-");
}
int main() {
#ifdef ONLINE_JUDGE
#else
freopen("1.txt", "r", stdin);
#endif // ONLINE_JUDGE
// for(int j = 0; j < 10; j++) printf("%d",j);
// printf("\n");
char str[max_n];
//char index[max_n];
cin.getline(str, max_n);
bool flag1 = 0, flag2 = 0; //数字的正负, 指数的正负
int len = strlen(str);
// printf("last:%c\n", str[len - 1]);
int i = 0;
//记录数字的正负
if(str[i] == '-') {
flag1 = 0;
i++;
} else if(str[i] == '+') {
flag1 = 1;
i++;
}
int E = 0; //E的位置
for(i++; i < len; i++) {
if(str[i] == 'E') {
E = i;
break;
}
}
//记录指针的正负
if(str[i++] == '-') {
flag2 = 0;
} else if(str[i++] == '+') {
flag2 = 1;
}
//记录指针的位置
// printf("index:%c\n", str[E+1]);
//int index_set = i + 1;
int index = 0;
int t = 0;
// printf("%c %c ", str[len - 2], str[len - 1]);
// int a = pow(10, 0);
// printf(" a:%d", a);
for(int j = len - 1; j > E + 1; j--) {
index += ((str[j] - '0') * pow(10, t));
t++;
}
//printf("flag1:%d flag2:%d E:%d index:%d\n", flag1, flag2, E, index);
//打印计算结果
Print(flag1);
//指数为0
if(index == 0) {
printf("%c", str[1]);
}
if(flag2 == true) { //指数为正
//E - 3 为小数位数大小
if(E - 3 == index) { //小数部分位数等于指数大小
for(int i = 1; i < E; i++) {
if(i != 2) printf("%c", str[i]);
}
}
if(E - 3 < index) {
for(int i = 1; i < E; i++) {
if(i != 2) printf("%c", str[i]);
}
for(int i = index - (E - 3); i > 0; i--) printf("0");
}
if(E - 3 > index) {
int i;
for(i = 1; i < index + 3; i++) {
if(i != 2) printf("%c", str[i]);
}
printf(".");
int a = i;
for(a; a < E; a++) {
printf("%c", str[a]);
}
}
} else if(flag2 == false) { //指数为负
printf("0.");
for(int i = 0; i < index - 1; i++) { //输出(index - 1)个0
printf("0");
}
printf("%c", str[1]); //输出整数部分的数字
for(int i = 3; i < E; i++) {
if(i != E && i != E + 1) {
printf("%c", str[i]);
}
}
}
return 0;
}
PAT B1024/A1073 科学计数法的更多相关文章
- PAT乙级 1024. 科学计数法 (20)
1024. 科学计数法 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 HOU, Qiming 科学计数法是科学家用来表示很 ...
- PAT乙级 1024. 科学计数法 (20)(未通过全部测试,得分18)
1024. 科学计数法 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 HOU, Qiming 科学计数法是科学家用来表示很 ...
- pat 1060 比较科学计数法
trick: 1.前导0 如:000001,000.000001 2.出现0时也要按照科学计数法输出 e.g. 4 00000.00000 0001 NO 0.0000*10^0 0.1*10^1 3 ...
- PAT Basic 1024 科学计数法 (20 分) Advanced 1073 Scientific Notation (20 分)
科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [+-][1-9].[0-9]+E[+-][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指 ...
- PAT乙级 1024 科学计数法
思路 1.尝试失败:一开始想打算把结果直接存在一个字符串中,后来发现当指数大于0的时候还需要分别考虑两种情况,工程量巨大,尝试失败,于是借鉴了其他大佬思路,写出了ac代码 2.ac思路:首先取指数的绝 ...
- PAT B1024科学计数法
科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [+-][1-9].[0-9]+E[+-][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指 ...
- C#版 - PAT乙级(Basic Level)真题 之 1024.科学计数法转化为普通数字 - 题解
版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. PAT Bas ...
- PAT 1024 科学计数法 (20)(精简版代码+思路+推荐测试样例)
1024 科学计数法 (20)(20 分) 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+, ...
- PAT (Basic Level) Practise (中文)- 1024. 科学计数法 (20)
PAT (Basic Level) Practise (中文)- 1024. 科学计数法 (20) http://www.patest.cn/contests/pat-b-practise/1024 ...
随机推荐
- python 二维数组 转 矩阵
x = numpy.array([[,,],[,,],[,,]]) print x print x.shape 输出 [[ ] [ ] [ ]] (3L, 3L) [Finished .2s]
- Mybatis源码学习之parsing包(解析器)(二)
简述 大家都知道mybatis中,无论是配置文件mybatis-config.xml,还是SQL语句,都是写在XML文件中的,那么mybatis是如何解析这些XML文件呢?这就是本文将要学习的就是,m ...
- HDU 4612 Warm up —— (缩点 + 求树的直径)
题意:一个无向图,问建立一条新边以后桥的最小数量. 分析:缩点以后,找出新图的树的直径,将这两点连接即可. 但是题目有个note:两点之间可能有重边!而用普通的vector保存边的话,用v!=fa的话 ...
- antd-mobile的DatePicker分钟精度半小时
项目要求,在时间选择上需要精确到分钟,且分钟只能半小时,既0分钟或者是30分钟. 前期引用的时间控件是antd-mobile的DatePicker组件,具体用法可参考:https://mobile.a ...
- The JAVA_HOME environment variable is not defined correctly的错误
The JAVA_HOME environment variable is not defined correctlyThis environment variable is needed to ru ...
- linux下通过进程名查看其占用端口
linux下通过进程名查看其占用端口: 1.先查看进程pid ps -ef | grep 进程名 2.通过pid查看占用端口 netstat -nap | grep 进程pid 例:通过nginx进程 ...
- cv常用名词缩写
lr:learning rate roi:region of interest,可能包含目标的区域. wd:weight decay fps:frame per second,每秒几帧 fine tu ...
- legend3---15、像粉丝数、关注数、课程数等数量数据如何处理
legend3---15.像粉丝数.关注数.课程数等数量数据如何处理 一.总结 一句话总结: 在主表中加入这种数量字段:比如在用户表中加入粉丝数,关注数字段 普通更新:增加数量的时候将数据插入到关联表 ...
- 加载自定义目录下的springmvc.xml配置文件
在默认情况下:springmvc框架的配置文件必须叫<servlet-name>-servlet.xml 且必须放在/WEB-INF/目录下,我们可以在web.xml文件中,为Dispat ...
- SoundPool 播放短声音
SoundPool 最大只能申请1M的内存空间,只能用一些很短的声音片段,而不是用它来播放歌曲或者做游戏背景音乐. 使用 SoundPool 播放短声音实现步骤如下: // 创建SoundPool实例 ...