pat 乙级1024 科学计数法关于stl中size()的一些思考即测试点六,无符号整数问题
来,先看题目:1024 科学计数法
分数 20 作者 HOU, Qiming 单位 浙江大学
科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [+-][1-9].[0-9]+E[+-][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指数部分的正负号即使对正数也必定明确给出。现以科学计数法的格式给出实数 A,请编写程序按普通数字表示法输出 A,并保证所有有效位都被保留。
输入格式:
每个输入包含 1 个测试用例,即一个以科学计数法表示的实数 A。该数字的存储长度不超过 9999 字节,且其指数的绝对值不超过 9999。
输出格式:
对每个测试用例,在一行中按普通数字表示法输出 A,并保证所有有效位都被保留,包括末尾的 0。
输入样例 1:
+1.23400E-03
输出样例 1:
0.00123400
输入样例 2:
-1.2E+10
输出样例 2:
-12000000000
我有两种解决方法,一种是随着读的过程就打印出来,一种是存在字符串里。废话不多说,先看代码
#include<bits/stdc++.h>
using namespace std;
int main(){
string a,b;cin>>a;
if(a[0]=='-')cout<<"-";
//int i;//i-2位数,小数i-3
int num;
int pos=a.find('E');
if(a[pos+1]=='-')num=(-1)*stoi(a.substr(pos+2));
else num=stoi(a.substr(pos+2));
int youxiaowei=-pos+3+num;
for(int i=0;i<pos;i++){
if(isdigit(a[i]))b=b+a[i];
}
int k=youxiaowei;
k=k+b.size();
if(youxiaowei<0){
if(k<=0){
cout<<"0.";
for(int i=0;i<-1*k;i++)cout<<"0";
cout<<b<<endl;
}
else{//测试点3,4 测试样例:+1.234E+01;
int cnt=0;
while(k-cnt!=0){
cout<<b[cnt++];
}
cout<<"."<<b.substr(cnt);
}
}
else{
cout<<b;
for(int i=0;i<(youxiaowei);i++)cout<<"0";
cout<<endl;
}
return 0;
}
// #include<bits/stdc++.h>
// using namespace std;
// int main(){
// string a,b;cin>>a;
// if(a[0]=='-')cout<<"-";
// //int i;//i-2位数,小数i-3
// int num;
// int pos=a.find('E');
// if(a[pos+1]=='-')num=(-1)*stoi(a.substr(pos+2));
// else num=stoi(a.substr(pos+2));
// int youxiaowei=-pos+3+num;
// for(int i=0;i<=pos;i++){
// if(isdigit(a[i]))b=b+a[i];
// }
// int k=youxiaowei;
// k=k+b.size();
// if(youxiaowei<0){
// if(k<=0){
// for(int i=0;i<-1*k;i++)b="0"+b;
// b="0."+b;
// }
// else{
// b=b.substr(0,b.size()+youxiaowei)+"."+b.substr(b.size()+youxiaowei);
// }//注意b.size()是一个无符号整数,如果它直接和另一个数相运算且结果小于0;则会出错测试点6
// }
// else{
// for(int i=0;i<(youxiaowei);i++)b+="0";
// }
// for(int i=0;b[i]=='0';){
// if(b.find('.')==1)break;
// else b.erase(0,1);
// }
// if(b!="")
// cout<<b;
// else cout<<0<<endl;
// return 0;
// }
总结:一个无符号整数,如果它直接和另一个数相运算且结果小于0。运算得到的结果就不是小于0,而是它的存储的补码所构成的无符号整数,是一个非常大的数。所以,使用size()的时候当万分注意
pat 乙级1024 科学计数法关于stl中size()的一些思考即测试点六,无符号整数问题的更多相关文章
- 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乙级 1024 科学计数法
思路 1.尝试失败:一开始想打算把结果直接存在一个字符串中,后来发现当指数大于0的时候还需要分别考虑两种情况,工程量巨大,尝试失败,于是借鉴了其他大佬思路,写出了ac代码 2.ac思路:首先取指数的绝 ...
- PAT Basic 1024 科学计数法 (20 分) Advanced 1073 Scientific Notation (20 分)
科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [+-][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 ...
- PAT-乙级-1024. 科学计数法 (20)
1024. 科学计数法 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 HOU, Qiming 科学计数法是科学家用来表示很 ...
- P 1024 科学计数法
转跳点:
- PAT——1024. 科学计数法
科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+,即数字的整数部分只有1位,小数部分至少有1位 ...
随机推荐
- 使用Spring Reactor优化推荐流程
1. 背景 公司有一个推荐系统Rec,这个系统的主要功能是: 向外部系统提供推荐接口 根据请求获取推荐策略 根据推荐策略完成推荐的召回.过滤.打分.排序阶段 Rec作为微服务中的一环,本身不存储召回的 ...
- 使用Java刷评论为平台引流的经历
场景:需要在一网站中批量评论留言. 分析接口: 列表接口获取idList,返回的是json数据直接用FastJson转就可以,如果返回的是HTML片段,则需要使用Jsoup进行提取,值得一学,常用于爬 ...
- 使用sanic框架实现分布式爬虫
bee_server.py from sanic import Sanic from sanic import response from urlpool import UrlPool #初始化url ...
- [数据结构]哈希拉链法化解冲突+ASL计算
看这篇就好(自用,别骂我) 摘自博客园 存疑:学校考试空节点算不算查找次数???
- windows简单使用Jenkins遇到的一些坑
简言: 闲来没事干,最近身边的小伙伴都在谈论CI/CD.自动化等等,耳朵都磨出茧了.这不闲着研究下jenkins.下面将自己遇到的一些坑分享出来. 首先介绍下Jenkins.Jenkins 是一个基于 ...
- MySQL转义字符+存储过程的使用
MySQL中大于,大于等于,小于,小于等于的转义写法 一.左边就是原来的符号,右边就是在mybatis中代替的符号 二.如何通过mysql的存储过程创建虚拟表(临时表),并插入1000条数据 这些表通 ...
- MySQL字符编码、存储引擎、严格模式、字段类型之浮点 字符串 枚举与集合 日期类型
目录 字符编码与配置文件 数据路储存引擎 创建表的完整语法 字段类型之整型 严格模式 字段类型之浮点型 字段类型之字符串类型 数字的含义 字段类型之枚举与集合 字段类型之日期类型 字符编码与配置文件 ...
- 搭建漏洞环境及实战——搭建DVWA漏洞环境
DVWA是一款开源的渗透测试漏洞练习平台,其中内涵XSS.SQL注入.文件上传.文件包含.CSRF和暴力破解等各个难度的测试环境. 1.在安装时需要在数据库里创建一个数据库名,进入MySQL管理中的p ...
- css实习滤镜效果(背景图模糊)
模糊实例 图片使用高斯模糊效果: img { -webkit-filter: blur(5px); /* Chrome, Safari, Opera */ filter: blur(5px); } c ...
- 红袖添香,绝代妖娆,Ruby语言基础入门教程之Ruby3基础语法,第一次亲密接触EP01
书接上回,前一篇我们在全平台构建好了Ruby3的开发环境,现在,可以和Ruby3第一次亲密接触了. Ruby是一门在面向对象层面无所不用其极的解释型编程语言. 我们可以把编写Ruby代码看作是一场行为 ...