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 科学计数法
转跳点:
随机推荐
- oracle用>=替代>
如果DEPTNO上有一个索引, 高效: SELECT * FROM EMP WHERE DEPTNO >=4 低效: SELECT * FROM EMP WHERE DEPTNO >3 两 ...
- 机器学习-RBF高斯核函数处理
机器学习-RBF高斯核函数处理 SVM高斯核函数-RBF优化 重要了解数学的部分: 协方差矩阵,高斯核函数公式. 个人建议具体的求法还是看下面的核心代码吧,更好理解,反正就我个人而言,烦躁的公式,还 ...
- 用于数组的delete p324
delete 对象地址; delete 首先调用待清除对象的析构函数,然后释放内存 如果delete一个void指针,唯一发生的事情就是释放了内存.因为通过void指针,无法知道对象的类型,就无法调用 ...
- Vue 中的过滤器的使用
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- codeforce 380(div.2)
A B 略 C:二分,贪心 设d(i, v)为 剩余油量为v时,车开距离i 所需要的最小时间,使用线性规划不难算出: if v < i return INF; //无法到达 if v > ...
- 2018-11-2-win10-uwp-通过-win2d-画出笔迹
title author date CreateTime categories win10 uwp 通过 win2d 画出笔迹 lindexi 2018-11-2 20:11:0 +0800 2018 ...
- H3C DHCP中继显示及维护
- JMETER+JENKINS接口测试持续集成
FIDDER+ANT+JENKINS+JMETER+SVN+tomcat接口测试集成 操作流程: 1.测试人员通过FIDDER过滤抓取接口调用信息,导出成jmx文件.(jmeter支持命令行方式调用j ...
- 2019-2-11-WPF-列表自动换行
title author date CreateTime categories WPF 列表自动换行 lindexi 2019-02-11 08:55:31 +0800 2019-02-11 08:5 ...
- SPOJ - DISUBSTR Distinct Substrings (后缀数组)
Given a string, we need to find the total number of its distinct substrings. Input T- number of test ...