1024 科学计数法 (20 分)C与Java
科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][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
思路
- 用d(int)保存整数部分,e(int)保存指数部分,Dec[](char *)保存小数部分;
 - 若d<0,输出符号’-’;
 - 若e<0,输出e个零‘0’,并且第一次输出(count==0)时输出小数点‘.’;
 - 输出整数部分d(无符号);
 - 输出小数部分,若指数(e)大于小数的位数(strlen(Dec)),输出多余的0;否则若没输出过小数点‘.’,输出小数点‘.’。
 - 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的更多相关文章
- PAT Basic 1024 科学计数法 (20 分) Advanced 1073 Scientific Notation (20 分)
		
科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [+-][1-9].[0-9]+E[+-][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指 ...
 - PAT 1024 科学计数法 (20)(精简版代码+思路+推荐测试样例)
		
1024 科学计数法 (20)(20 分) 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+, ...
 - PAT乙级   1024. 科学计数法 (20)
		
1024. 科学计数法 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 HOU, Qiming 科学计数法是科学家用来表示很 ...
 - 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 (Basic Level) Practise (中文)- 1024. 科学计数法 (20)
		
PAT (Basic Level) Practise (中文)- 1024. 科学计数法 (20) http://www.patest.cn/contests/pat-b-practise/1024 ...
 - PAT 1024. 科学计数法 (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 ...
 - P 1024 科学计数法
		
转跳点:
 
随机推荐
- @codeforces - 1205C@ Palindromic Paths
			
目录 @description@ @solution@ @accepted code@ @details@ @description@ 这是一道交互题. 现在有一个 n*n 的矩阵,每个位置是 0 或 ...
 - thinkphp3.2配置redis缓存和文件缓存
			
如果把一些常用但又不容易变的数据存缓存,而不是每次查数据库,这样能很大减轻数据库压力 最近由于项目需要,就尝试了一把redis,但是后面又用了tp3.2的文件缓存,直接进入主题: 在config.ph ...
 - art-template web模板引擎引入JS函数
			
art-template语法 可以在模板引擎中加入自定义的函数; template.defaults.imports.LocalShortDate = LocalShortDate; 在模板引擎中的用 ...
 - SpringBoot使用logback输出日志并打印sql信息 --经典---
			
最近在学习springboot以及一些springcloud插件的使用,其中发现默认的配置并不能打印一些有用的日志,所以需要自定义一些日志输出方式以便于查看日志排查问题,目前只整理了两种使用方式,如下 ...
 - EL表达式中的empty和null
			
EL表达式中的empty和null 先说一下EL表达式中的null和empty区别,然后再说说最近在项目中出现的一个有趣的问题. EL中的null和empty都可用来判断值是否为空,但两者存在略微的区 ...
 - 【JQ】toggle / slideToggle / fadeToggle 的区别
			
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
 - CentOS7 network.service loaded failed 处理技巧
			
某一日,用systemctl --failed查看到如下错误信息,但实际上网络是OK的,真奇怪: 1 2 3 4 5 6 7 8 [root@localhost.localdomain media]# ...
 - POI 导入、导出Excel
			
POI,全称Apache POI,是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能.项目地址:Apache POI - t ...
 - python基础十四之匿名函数
			
匿名函数 处理简单问题的简化函数,关键字lambda. # 格式:函数名 = lambda 参数:返回值 anonymity = lambda s: s ** 0.5 print(anonymity( ...
 - React   MVC框架  <某某后台商品管理开源项目>   完成项目总结
			
**百货后台商品信息开源项目 1.利用React app脚手架 2.封装打包 buid 3.更偏向于后台程序员开发思维 4.利用的 react -redux react-router-dom ...