【PAT】1073. Scientific Notation (20)【字符串处理】

2024-04-12 06:18

本文主要是介绍【PAT】1073. Scientific Notation (20)【字符串处理】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目描述

Scientific notation is the way that scientists easily handle very large numbers or very small numbers. The notation matches the regular expression [+-][1-9]”.”[0-9]+E[+-][0-9]+ which means that the integer portion has exactly one digit, there is at least one digit in the fractional portion, and the number and its exponent’s signs are always provided even when they are positive.

Now given a real number A in scientific notation, you are supposed to print A in the conventional notation while keeping all the significant figures.

翻译:科学计数法是一种让科学家可以很轻松的处理非常大的数字或非常小的数字的方法。其符号用正则表达式表示为[+-][1-9]”.”[0-9]+E[+-][0-9]+,即整数部分有且只有一位数字,小数部分至少有一位数字,并且它的数字和指数符号总是会提供即使它们为正数。
现在给你一个用科学计数法表示的实数A,你需要按照传统格式输出A并保留所有的有效数字。

IPNUT FORMAT

Each input file contains one test case. For each case, there is one line containing the real number A in scientific notation. The number is no more than 9999 bytes in length and the exponent’s absolute value is no more than 9999.

翻译:每个输入文件包含一组测试数据。对于每组输入数据,第一行包括一个用科学计数法表示的实数A。数字位数的长度不超过9999,并且指数的绝对值不超过9999。

OUTNUT FORMAT

For each test case, print in one line the input number A in the conventional notation, with all the significant figures kept, including trailing zeros,

翻译:对于每组测试数据,输出一行传统格式下的数字A,并保留所有的有效数字,包括尾部0。


Sample Input 1:

+1.23400E-03

Sample Output 1:

0.00123400


Sample Input 2:

1.2E+10

Sample Output 2:

12000000000


解题思路

这道题主要是字符串的处理,如果指数为负则添加前导0,为正数时判断输出位数是否达到指数,如果未达到在末尾输出0。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<string>
#include<algorithm>
#define INF 99999999
using namespace std;
char s[10010];
int main(){scanf("%s",s);int length=strlen(s);int flag=0,wei=0,symbol=0;for(int i=0;i<length;i++){if(i==0&&s[i]!='+')printf("-");if(flag&&s[i]=='-')symbol=1;if(flag&&s[i]>='0'&&s[i]<='9')wei=wei*10+s[i]-'0';if(s[i]=='E')flag=i;}if(symbol==1){printf("0.");for(int i=1;i<wei;i++)printf("0");for(int i=1;i<flag;i++){if(s[i]!='.')printf("%c",s[i]);}}else {int f=0;for(int i=1;i<flag;i++){if(i>wei+2&&!f)printf("."),f=1;if(s[i]!='.')printf("%c",s[i]);}if(wei)for(int i=0;i<wei-flag+3;i++){printf("0");}}printf("\n");return 0;
}

这篇关于【PAT】1073. Scientific Notation (20)【字符串处理】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/896331

相关文章

Java中的StringBuilder之如何高效构建字符串

《Java中的StringBuilder之如何高效构建字符串》本文将深入浅出地介绍StringBuilder的使用方法、性能优势以及相关字符串处理技术,结合代码示例帮助读者更好地理解和应用,希望对大家... 目录关键点什么是 StringBuilder?为什么需要 StringBuilder?如何使用 St

Java 中的 @SneakyThrows 注解使用方法(简化异常处理的利与弊)

《Java中的@SneakyThrows注解使用方法(简化异常处理的利与弊)》为了简化异常处理,Lombok提供了一个强大的注解@SneakyThrows,本文将详细介绍@SneakyThro... 目录1. @SneakyThrows 简介 1.1 什么是 Lombok?2. @SneakyThrows

在 Spring Boot 中实现异常处理最佳实践

《在SpringBoot中实现异常处理最佳实践》本文介绍如何在SpringBoot中实现异常处理,涵盖核心概念、实现方法、与先前查询的集成、性能分析、常见问题和最佳实践,感兴趣的朋友一起看看吧... 目录一、Spring Boot 异常处理的背景与核心概念1.1 为什么需要异常处理?1.2 Spring B

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

一文详解Java异常处理你都了解哪些知识

《一文详解Java异常处理你都了解哪些知识》:本文主要介绍Java异常处理的相关资料,包括异常的分类、捕获和处理异常的语法、常见的异常类型以及自定义异常的实现,文中通过代码介绍的非常详细,需要的朋... 目录前言一、什么是异常二、异常的分类2.1 受检异常2.2 非受检异常三、异常处理的语法3.1 try-

Java中字符串转时间与时间转字符串的操作详解

《Java中字符串转时间与时间转字符串的操作详解》Java的java.time包提供了强大的日期和时间处理功能,通过DateTimeFormatter可以轻松地在日期时间对象和字符串之间进行转换,下面... 目录一、字符串转时间(一)使用预定义格式(二)自定义格式二、时间转字符串(一)使用预定义格式(二)自

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

Java Response返回值的最佳处理方案

《JavaResponse返回值的最佳处理方案》在开发Web应用程序时,我们经常需要通过HTTP请求从服务器获取响应数据,这些数据可以是JSON、XML、甚至是文件,本篇文章将详细解析Java中处理... 目录摘要概述核心问题:关键技术点:源码解析示例 1:使用HttpURLConnection获取Resp

Java中Switch Case多个条件处理方法举例

《Java中SwitchCase多个条件处理方法举例》Java中switch语句用于根据变量值执行不同代码块,适用于多个条件的处理,:本文主要介绍Java中SwitchCase多个条件处理的相... 目录前言基本语法处理多个条件示例1:合并相同代码的多个case示例2:通过字符串合并多个case进阶用法使用