科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][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

思路

  1. 用d(int)保存整数部分,e(int)保存指数部分,Dec[](char *)保存小数部分;
  2. 若d<0,输出符号’-’;
  3. 若e<0,输出e个零‘0’,并且第一次输出(count==0)时输出小数点‘.’;
  4. 输出整数部分d(无符号);
  5. 输出小数部分,若指数(e)大于小数的位数(strlen(Dec)),输出多余的0;否则若没输出过小数点‘.’,输出小数点‘.’。
  6. Over。

C

#include <stdio.h>
int main(){
int d,e,count=0,i;
char xiao[10000];
scanf("%d.%[0-9]E%d",&d,xiao,&e);
if(d<0){
printf("-");
}else{
printf("");
}
while(e++<0){
if(count++==0){
printf("0.");
}else{
printf("0");
}
}
e--;
printf("%d",abs(d));//abs() 函数用于求整数的绝对值。
for(i=0;i<strlen(xiao)||i<e;i++){ //strlen 是一个函数,它用来计算指定字符串 str 的长度,但不包括结束字符(即 null 字符)
if(i==e && !count){
if(i<strlen(xiao)){
printf(".%c",xiao[i]);
}else{
printf(".0");
}
}else{
if(i<strlen(xiao)){
printf("%c",xiao[i]);
}else{
printf("0");
}
}
}
return 0;
}

C版本精简

#include <stdio.h>
int main(){
int d,e,count=0;
char Dec[10000];
scanf("%d.%[0-9]E%d",&d,Dec,&e);
printf("%s",d<0 ? "-" : "");
while( e++ < 0 )
printf("0%s",count++==0 ? "." : "");
e--;
printf("%d",abs(d));//abs() 函数用于求整数的绝对值。
for(int i=0 ; i<strlen(Dec) || i<e ; i++)
//strlen 是一个函数,它用来计算指定字符串 str 的长度,但不包括结束字符(即 null 字符)
printf("%s%c",i==e && !count ? ".":"",i<strlen(Dec) ? Dec[i] : '0');
}//(a>b)?y:n。解释:如果A大于B,那么选择Y的结果,如果A小于等于B,那么选择N的结果。

Java

用Scanner语句读入会极大可能超时,所以查询网络的回答得出如下:

import java.io.*;
import java.math.*;
public class Main {
public static void main(String[] args)throws IOException {
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
BigDecimal s = new BigDecimal(in.readLine());
System.out.println(s.toPlainString());
}
}

1024 科学计数法 (20 分)C与Java的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

  7. PAT 1024. 科学计数法 (20)

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

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

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

  9. P 1024 科学计数法

    转跳点:

随机推荐

  1. Android 申请权限示例

    1.在Mainifest.xml中添加 <?xml version="1.0" encoding="utf-8"?> <manifest xm ...

  2. hdu 5793 A Boring Question(2016第六场多校)

    A Boring Question Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others ...

  3. jasperReports 通过java导出各种格式报表,及javaweb项目整合显示各种报表

    注意:编写此项目时,请先手动编写**.jrxml  或者用IReport生成**.jrxml或**.jasper 注:java导出报表与web项目显示报表方法其实是相同的,只不过有一句代码不同,如下 ...

  4. VSCode配置启动Vue项目

    下载安装并配置VSCode 随便百度上搜个最新的VSCode安装好后,点击Ctrl + Shit + X打开插件扩展窗口进行插件扩展,这里要安装两个插件. 1.vetur插件的安装 该插件是vue文件 ...

  5. 洛谷 2279 [HNOI2003]消防局的设立

    Description 2020年,人类在火星上建立了一个庞大的基地群,总共有n个基地.起初为了节约材料,人类只修建了n-1条道路来连接这些基地,并且每两个基地都能够通过道路到达,所以所有的基地形成了 ...

  6. H3C 主机单播IP包发送

  7. HDU 1326

    题意:给出一堆高度不一的砖头,现在使他们高度一样,问最少的移动次数,(每减少1就是移动一次) 思路:求出平均高度,然后模拟最后平均高度的数组,也就是说,每个数组对应每一个平均高度,也就是说比平均高度大 ...

  8. 手机web页面调用手机QQ实现在线聊天的效果

    html代码如下: <a href="javascript:;" onclick="chatQQ()">QQ咨询</a> js代码如下: ...

  9. linux 位操作

    atomic_t 类型在进行整数算术时是不错的. 但是, 它无法工作的好, 当你需要以原子方 式操作单个位时. 为此, 内核提供了一套函数来原子地修改或测试单个位. 因为整个操作 在单步内发生, 没有 ...

  10. 2019-8-31-win10-uwp-使用-WinDbg-调试

    title author date CreateTime categories win10 uwp 使用 WinDbg 调试 lindexi 2019-08-31 10:30:35 +0800 201 ...