PAT甲题题解-1073. Scientific Notation (20)-字符串处理
题意:给出科学计数法的格式的数字A,要求输出普通数字表示法,所有有效位都被保留,包括末尾的0。
分两种情况,一种E+,一种E-。具体情况具体分析╮(╯_╰)╭
- #include <iostream>
- #include <cstdio>
- #include <algorithm>
- #include <string.h>
- #include <cmath>
- #define POSITIVE 1
- #define NEGATIVE 2
- using namespace std;
- /*
- 将科学计数法表示的数转换成传统的形式输出
- */
- const int maxn=;
- char str[maxn];
- char expval[maxn];
- void printNum(char *num,int idxE,int fraclen,int e,int mark){
- //指数为正
- if(mark==POSITIVE){
- bool flag=false;
- if(num[]!=''){
- flag=true;
- printf("%c",num[]);
- }
- num+=;
- int minlen=min(fraclen,e);
- for(int i=;i<minlen;i++){
- //前面的0直接忽略
- if(num[i]!=''){
- flag=true;
- }
- if(flag){
- printf("%c",num[i]);
- }
- }
- if(e>=fraclen){
- for(int i=;i<e-fraclen;i++)
- printf("");
- }
- else{
- printf(".");
- for(int i=;i<fraclen-e;i++)
- printf("%c",num[minlen+i]);
- }
- }
- //指数为负
- else{
- printf("0.");
- for(int i=;i<e-;i++){
- printf("");
- }
- for(int i=;num[i]!='E';i++){
- if(num[i]!='.')
- printf("%c",num[i]);
- }
- }
- }
- int main()
- {
- scanf("%s",str);
- int len=strlen(str);
- int idxE=;
- int fracLen;
- for(int i=;i<len;i++){
- if(str[i]=='E'){
- idxE=i; //E的索引
- break;
- }
- }
- fracLen=idxE-;//小数部分长度
- int explen=;
- for(int i=idxE+;i<len;i++){
- expval[explen++]=str[i];
- }
- expval[explen]='\0';
- int e=atoi(expval);
- if(str[idxE+]=='+'){
- if(str[]=='-')
- printf("-");
- printNum(str+,idxE,fracLen,e,POSITIVE);
- }
- else{
- if(str[]=='-')
- printf("-");
- printNum(str+,idxE,fracLen,e,NEGATIVE);
- }
- return ;
- }
PAT甲题题解-1073. Scientific Notation (20)-字符串处理的更多相关文章
- PAT甲题题解-1108. Finding Average (20)-字符串处理
求给出数的平均数,当然有些是不符合格式的,要输出该数不是合法的. 这里我写了函数来判断是否符合题目要求的数字,有点麻烦. #include <iostream> #include < ...
- PAT甲题题解-1041. Be Unique (20)-水题
博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/6789189.html特别不喜欢那些随便转载别人的原创文章又不给 ...
- PAT甲题题解-1050. String Subtraction (20)-水题
#include <iostream> #include <cstdio> #include <string.h> #include <algorithm&g ...
- PAT甲题题解-1088. Rational Arithmetic (20)-模拟分数计算
输入为两个分数,让你计算+,-,*,\四种结果,并且输出对应的式子,分数要按带分数的格式k a/b输出如果为负数,则带分数两边要有括号如果除数为0,则式子中的结果输出Inf模拟题最好自己动手实现,考验 ...
- PAT甲题题解-1096. Consecutive Factors(20)-(枚举)
题意:一个正整数n可以分解成一系列因子的乘积,其中会存在连续的因子相乘,如630=3*5*6*7,5*6*7即为连续的因子.给定n,让你求最大的连续因子个数,并且输出其中最小的连续序列. 比如一个数可 ...
- PAT甲题题解-1120. Friend Numbers (20)-水题
博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/6789775.html特别不喜欢那些随便转载别人的原创文章又不给 ...
- PAT甲题题解-1015. Reversible Primes (20)-素数
先判断n是否为素数然后把n转化成d进制下再反转,转化为十进制的num判断num是否为素数 注意n为0和1时,不是素数!!!注意反转后的num也有可能为1,不是素数!!! #include <io ...
- PAT甲题题解-1042. Shuffling Machine (20)-模拟
博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/6789205.html特别不喜欢那些随便转载别人的原创文章又不给 ...
- PAT甲题题解-1046. Shortest Distance (20)-做了一个假的最短路,水
一开始以为是最短路,结果是给你一个环,让你求环上两点之间的距离...那还做毛线 然而还是得做毛线 #include <iostream> #include <cstdio> # ...
随机推荐
- MySQL基础之 外键参照讲解
外键: 定义:如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表. 作用:外键是用来实现参照完整性的,不同的外键约束方式将可以是两张表紧密的结合起来.比如修改或者删除 ...
- unbuntu 安装python包提示E: Unable to locate package python-timeout
今天本想着在unbuntu环境下安装python的一个包,安装了几次都提示 E: Unable to locate package python-timeout 查阅了一些信息才知道,原来是一些软件源 ...
- 乘风破浪:LeetCode真题_029_Divide Two Integers
乘风破浪:LeetCode真题_029_Divide Two Integers 一.前言 两个整数相除,不能使用乘法除法和取余运算.那么就只能想想移位运算和加减法运算了. 二.Divide T ...
- [ML学习笔记] XGBoost算法
[ML学习笔记] XGBoost算法 回归树 决策树可用于分类和回归,分类的结果是离散值(类别),回归的结果是连续值(数值),但本质都是特征(feature)到结果/标签(label)之间的映射. 这 ...
- Alpha冲刺报告(9/12)(麻瓜制造者)
今日已完成 邓弘立: 正在进行主页逻辑的编写 符天愉: 部署商品发布和物品需求的接口 江郑: 尝试完善接口文档,进行进一步测试 刘双玉: 编写接口说明 肖小强: 进行逻辑模块的编写 李佳铭: 修改了U ...
- table中怎么设置两行间距
table中设置两行间距方法: css代码实现 <style> table { border-collapse: separate; border-spacing: 1 ...
- zabbix 客户端添加自定义参数
0.zabbix客户端配置文件 server和serveractive都需要配置 1.配置自定义参数脚本文件 zabbix_agent.conf中UserParameter字段,可以配置多行 User ...
- PAT A1007 Maximum Subsequence Sum (25 分)——最大子列和,动态规划
Given a sequence of K integers { N1, N2, ..., NK }. A continuous subsequence is defined to ...
- python3 Beautifulsoup <class 'bs4.element.ResultSet'> <class 'bs4.element.Tag'> 取值
1.<class 'bs4.element.ResultSet'> 这里是字典外套了一个列表 textPid = pid[0] 2.<class 'bs4.element.Tag ...
- Scala--操作符
一.标识符 二.中置操作符 中置表达式,操作符位于两个参数之间 1 to 10 1.to(10) 1 -> 10 1.->(10) 三.一元操作符 a.标识符() 1 toString 1 ...