JNUOJ 1184 - 科学计数法
花了半个小时,强行拗出一长串又臭又长的代码,把所有情况都分了(该分的,不该分的……都分了……)
- #include<cstdio>
- #include<cstring>
- #include<cmath>
- #define MAX 120
- char num[MAX],d[MAX],b_[],b;
- int main()
- {
- int t;
- scanf("%d",&t);
- while(t--)
- {
- scanf("%s",num);
- if(num[]=='')
- {
- int i,cnt;
- for(i=,cnt=;;i++,cnt++)
- {
- if(num[i]=='e') break;
- d[cnt]=num[i];
- }
- d[cnt]='\0';
- i++;
- for(cnt=;num[i];i++,cnt++) b_[cnt]=num[i];
- b_[cnt]='\0';
- int len_b=strlen(b_);
- b=;
- for(i=;i<len_b;i++) b+=(b_[i]-'')*(int)pow(,(len_b--i));
- int len_d=strlen(d);
- if(len_d== && d[]=='')//这个数是0
- {
- printf("0\n");
- }
- else if(b<len_d)//不需要添加后缀0,需要移动小数点,并去掉前缀0
- {
- int d_0=;
- for(i=;i<len_d;i++)
- {
- if(d[i]!='') break;
- if(d[i]=='') d_0++;
- }//前缀0个数
- if(b<=d_0)//b <= d的前缀0个数,n<1
- {
- printf("0.");
- for(i=b;i<len_d;i++) printf("%c",d[i]);
- printf("\n");
- }
- else//b > d的前缀0个数,n>=1
- {
- for(i=d_0;i<b;i++) printf("%c",d[i]);
- printf(".");
- for(;i<len_d;i++) printf("%c",d[i]);
- printf("\n");
- }
- }
- else if(b==len_d)//直接去掉小数点,并去掉前缀0
- {
- for(i=;i<len_d;i++) if(d[i]!='') break;
- for(;i<len_d;i++) printf("%c",d[i]);
- printf("\n");
- }
- else//需要添加后缀0,并且去掉前缀0
- {
- for(i=;i<len_d;i++) if(d[i]!='') break;
- for(;i<len_d;i++) printf("%c",d[i]);
- for(i=;i<=b-len_d;i++) printf("");
- printf("\n");
- }
- }
- else
- {
- int i,cnt;
- for(i=,cnt=;;i++,cnt++)
- {
- if(num[i]=='e') break;
- d[cnt]=num[i];
- }
- d[cnt]='\0';
- i++;
- for(cnt=;num[i];i++,cnt++) b_[cnt]=num[i];
- b_[cnt]='\0';
- int len_b=strlen(b_);
- b=;
- for(i=;i<len_b;i++) b+=(b_[i]-'')*(int)pow(,(len_b--i));
- int len_d=strlen(d);
- if(b<len_d)//不需要添加0,需要移动小数点
- {
- printf("%c",num[]);
- for(i=;i<b;i++) printf("%c",d[i]);
- printf(".");
- for(;i<len_d;i++) printf("%c",d[i]);
- printf("\n");
- }
- else if(b==len_d)//直接去掉小数点
- {
- printf("%c",num[]);
- for(i=;i<len_d;i++) printf("%c",d[i]);
- printf("\n");
- }
- else//需要添加后缀0
- {
- printf("%c",num[]);
- for(i=;i<len_d;i++) printf("%c",d[i]);
- for(i=;i<=b-len_d;i++) printf("");
- printf("\n");
- }
- }
- }
- }
JNUOJ 1184 - 科学计数法的更多相关文章
- csv 中 数值被自动转换成科学计数法 的问题 excel打开后数字用科学计数法显示且低位变0的解决方法
保存在csv中的 013812345678,前面的0会被去掉,后面是科学计数法显示.保存成 col1,="013812345678" 即可. 注意,分隔符逗号后面直接接“=”等号. ...
- 【转】js 中导出excel 较长数字串会变为科学计数法
[转]js 中导出excel 较长数字串会变成科学计数法 在做项目中,碰到如题的问题.比如要将居民的信息导出到excel中,居民的身份证号码因为长度过长(大于10位),excel会自动的将过长的数字串 ...
- C# 科学计数法转换成数字
/// <summary> /// 判断输入的数是否是科学计数法.如果是的话,就会将其换算成整数并且返回,否则就返回false. /// </summary> /// < ...
- C# 中科学计数法转成正常值
抓取数据的时候碰到科学技术法,查了一些资料,直接贴代码 /// <summary> /// 数字科学计数法处理 /// </summary> /// <param nam ...
- PAT 1024. 科学计数法 (20)
科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+,即数字的整数部分只有1位,小数部分至少有1位 ...
- PHP 如何显示大数字,防止显示为 科学计数法 形式
PHP 数字超过一定长度时,会自动转换为 科学计数法 的形式,如 1.2345678912346E+16: 如何 避免转换,让它原样展示呢? 不过,可以用PHP函数 number_format() 来 ...
- 关于解决读取导入excel某列数字过长的科学计数法格式
因为 客户 需要导入 虚拟商品的卡号 excel已经是文本形式的单元格格式了 但是 到后台 java代码去获取的时候 仍然是 科学计数法格式 先找到以下资料做参考:http://love-66521. ...
- PAT乙级 1024. 科学计数法 (20)
1024. 科学计数法 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 HOU, Qiming 科学计数法是科学家用来表示很 ...
- POI取消科学计数法
前台输入手机号13777777777,如果是为Double类型接收,就会自动转为科学计数法 找了下,一般是Double转String,方法一般有两种: 1.利用String.format() sale ...
随机推荐
- Java使用选择排序法对数组排序
编写程序,实现将输入的字符串转换为一维数组,并使用选择排序法对数组进行排序. 思路如下: 点击"生成随机数"按钮,创建Random随机数对象: 使用JTextArea的setTex ...
- x264编码的图像出现乱码的问题
将YUV进行x264编码的时候,建议将 i_threads 参数设置成 X264_SYNC_LOOKAHEAD_AUTO//* 取空缓冲区继续使用不死锁的保证. 否则有可能编码出来的数据会出现IDR_ ...
- mybatis 之 resultType="Map" parameterType="String"
<select id="getAllGoodsForSouJiaYi" resultType="Map" parameterType="Stri ...
- Suggestion: add 'tools:replace="android:value"' to <meta-data> element at AndroidManifest.xml:25:5-27:41 to override.
记录下来少走些坑吧 一:不管用 tools:replace="android:icon,android:theme" xmlns:tools="http://schema ...
- React Native(十三)——ios键盘挡住textInput
渐入佳境 用React Native重构的项目也快接近尾声,剩下的就是适配ios的功能了.慢慢地也从中琢磨出了一点门道,于是就遇见了键盘遮挡textInput问题斑斑: 正常页面: android点击 ...
- 【angularjs基础】ng-repeat嵌套循环报错angular.min.js:89 Error: [ngRepeat:dupes]
再写嵌套循环的时候,提示一个错误 angular.min.js: Error: [ngRepeat:dupes] 代码如下 <table class="GridViewTable mt ...
- linux Tar 命令参数详解
tar命令 . 作用 tar命令是Unix/Linux系统中备份文件的可靠方法,几乎可以工作于任何环境中,它的使用权限是所有用户. . 格式 tar [主选项+辅选项] 文件或目录 eg: tar z ...
- scanf printf sprintf fprintf
都是C语言中的函数,但C++保留了这些函数,在头文件iostream中声明了. 1 scanf(格式控制,输出列表) printf (格式控制,输出列表) 举例: #include <iostr ...
- 告知你不为人知的UDP-疑难杂症和使用
版权声明:本文由黄日成原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/848077001486437077 来源:腾云阁 h ...
- [转]13 Hours: The Secret Soldiers of Benghazi
转:http://www.imfdb.org/wiki/13_Hours:_The_Secret_Soldiers_of_Benghazi The following weapons were use ...