书中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 科学计数法的更多相关文章

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

    1024. 科学计数法 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 HOU, Qiming 科学计数法是科学家用来表示很 ...

  2. PAT乙级 1024. 科学计数法 (20)(未通过全部测试,得分18)

    1024. 科学计数法 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 HOU, Qiming 科学计数法是科学家用来表示很 ...

  3. 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 ...

  4. PAT Basic 1024 科学计数法 (20 分) Advanced 1073 Scientific Notation (20 分)

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

  5. PAT乙级 1024 科学计数法

    思路 1.尝试失败:一开始想打算把结果直接存在一个字符串中,后来发现当指数大于0的时候还需要分别考虑两种情况,工程量巨大,尝试失败,于是借鉴了其他大佬思路,写出了ac代码 2.ac思路:首先取指数的绝 ...

  6. PAT B1024科学计数法

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

  7. C#版 - PAT乙级(Basic Level)真题 之 1024.科学计数法转化为普通数字 - 题解

    版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. PAT Bas ...

  8. PAT 1024 科学计数法 (20)(精简版代码+思路+推荐测试样例)

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

  9. PAT (Basic Level) Practise (中文)- 1024. 科学计数法 (20)

    PAT (Basic Level) Practise (中文)- 1024. 科学计数法 (20) http://www.patest.cn/contests/pat-b-practise/1024 ...

随机推荐

  1. Win10+ Clion + 树莓派 + QT进行远程qt程序开发

    环境配置 环境配置 Windows上:QT5 + CLion 硬件上:一只可联网.可ssh连接且装有QT5的树莓派 暂时还没想好... 树莓派安装qt sudo apt-get update sudo ...

  2. python2.X与Python3.X区别

    __future__模块 [回到目录] Python 3.x引入了一些与Python 2不兼容的关键字和特性,在Python 2中,可以通过内置的__future__模块导入这些新内容.如果你希望在P ...

  3. Light Switching(SPOJ LITE)—— 线段树成段更新异或值

    题目连接:http://www.spoj.com/problems/LITE/en/. 题意:有若干个灯泡,每次对一段操作,这一段原先是亮的,就关了:原先是关着的,就打开.询问某一段的打开的灯泡的个数 ...

  4. 黑马lavarel教程---9、缓存操作

    黑马lavarel教程---9.缓存操作 一.总结 一句话总结: legend2项目中自己写的哪些文件操作都可以通过这里的缓存实现,简单方便 1.lavarel中如何使用后端主流的缓存如 Memcac ...

  5. Qt高级——QTestLib单元测试框架

    一.QTestLib简介 1.QTestLib简介 QTestLib是Qt提供的一种针对基于Qt编写的程序或库的单元测试框架.QTestLib提供了单元测试框架的基本功能,并提供了针对GUI测试的扩展 ...

  6. github pr

    github----向开源框架提交pr的过程 https://blog.csdn.net/vim_wj/article/details/78300239github 的 pr 使用方法 https:/ ...

  7. [Mybatis]执行一句Sql返回一个List<String>

    在Mapper.xml如下书写SQL文,其中 resultType告知MyBatis返回的类型: <select id="selectExpiredDate" resultT ...

  8. Arrays.asList()使用指南

    简介 Arrays.asList()在平时开发中还是比较常见的,我们可以使用它将一个数组转换为一个List集合. String[] myArray = { "Apple", &qu ...

  9. Python--多任务(多进程,多线程,协程)

    1.单核CPU实现“多任务”:(注意:这里的多任务假的,是轮训执行多个任务一段时间) 1)时间片轮转 2)优先级调度算法 2.并行:真的多任务执行(CPU核数>=任务数):即在某个时刻点上,有多 ...

  10. Dubbo ==> 简介

    一.架构发展过程 首先,我们先来看看上面的架构发展的线路图:单一应用架构 --> 垂直应用架构 --> 分布式服务架构 --> 流动计算架构 . 单一应用架构 在一些中小型的传统软件 ...