1073 Scientific Notation
笔记:这是我迄今为止写过的最复杂的字符串处理算法题。
收获:分而治之,想不清楚就自己设计测试用例和结果。列举然后归类。
以下是程序流程图
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;int main(){//+1.23400E-03
//0.00123400char input[100010];scanf("%s",input);//以E为标识,分成两个字符串char beforeE[100010]="",afterE[100010]="";int len = strlen(input);int e_loc;for(int i=0;i<len;i++){if(input[i]=='E'){e_loc = i;break;}}for(int i=0;i<e_loc;i++){beforeE[i] = input[i];}beforeE[e_loc] = '\0';for(int i=e_loc+1;i<=len-1;i++){afterE[i-e_loc-1] = input[i];}//如果系数为负,先把负号打印出来 if(beforeE[0]=='-'){printf("-");}//去掉符号,得到系数和指数 char coe[100010]="",exp[100010]="",res[100010]="";for(int i=1;i<strlen(beforeE);i++){coe[i-1] = beforeE[i];}coe[strlen(beforeE)-1] = '\0';for(int i=1;i<strlen(afterE);i++){exp[i-1] = afterE[i];}exp[strlen(afterE)-1] = '\0';//将指数用整形存放起来,已知绝对值小于1wint exp_int = 0;sscanf(exp,"%d",&exp_int);//根据指数的正负来决定小数点向左还是右移动if(afterE[0]=='+'){//小数点右移 //如果系数小数部分的位数小于等于指数的绝对值,是不需要小数点的,如果等于还要补0//找到系数小数部分的位数int coe_xs_len;for(int i=0;i<strlen(coe);i++){if(coe[i]=='.'){coe_xs_len = strlen(coe)-1-i;break;}}//根据系数小数部分的位数和指数的绝对值分类 if(exp_int>=coe_xs_len){//输出除小数点外的字符 for(int i=0;i<strlen(coe);i++){if(coe[i]!='.'){printf("%c",coe[i]);}}if(exp_int>coe_xs_len){//还要补0 for(int i=0;i<exp_int-coe_xs_len;i++){printf("0");} }}else{//小数点依然存在,只是位置要向右挪动exp_int//测试数据 -3.1415926E+4 -- -31415.926 int dot_loc;for(int i=0;i<strlen(coe);i++){if(coe[i]!='.'){printf("%c",coe[i]);}else{dot_loc = i;break;}}for(int i=dot_loc+1;i<dot_loc+1+exp_int;i++){printf("%c",coe[i]);}printf(".");for(int i=dot_loc+1+exp_int;i<strlen(coe);i++){printf("%c",coe[i]);}}}else{//小数点左移 //找到系数小数部分的位数int coe_zs_len;for(int i=0;i<strlen(coe);i++){if(coe[i]=='.'){coe_zs_len = i;break;}}if(coe_zs_len == exp_int){printf("0.");for(int i=0;i<strlen(coe);i++){if(coe[i]!='.'){printf("%c",coe[i]);}}}if(coe_zs_len > exp_int){//如 +123.45E-2:1.2345//确定小数点的位置int loc_dot = coe_zs_len-exp_int;for(int i=0;i<loc_dot;i++){printf("%c",coe[i]);}printf(".");for(int i=loc_dot;i<strlen(coe);i++){if(coe[i]!='.'){printf("%c",coe[i]);}}}if(coe_zs_len < exp_int){//r如 +123.45E-6 : 0.00012345printf("0.");//确定要打印的0的个数int zero_num = exp_int-coe_zs_len;for(int i=0;i<zero_num;i++){printf("0");}for(int i=0;i<strlen(coe);i++){if(coe[i]!='.'){printf("%c",coe[i]);}} } } return 0;
}
相关文章:

几个笔试题目总结
1、阿里某个笔试题,两个字符串text,query,找到text中包含的最长的query的字串: public static String subStr(String text, String query) {if (text ! null && query ! null) {int length query.length();for (int i 0…

baidu mp3竟然还加密,太扯了
baidu mp3竟然还加密,太扯了 public class BaiduHelper { static int F 0; static string I "", J ""; static string O ""; static string E ""; static int[] K new int[1000…

Ubuntu 之linux与windows互传文件
Windows系统下与linux传输文件 windows环境下,windows传出数据到linux下 确保ubuntu安装了ssh服务端。如果没有安装,使用以下命令安装: sudo aptget install ssh service sshd restart 2.windows下下载pscp.exe软件从PuTTY官方网站下载pscp.e…

1048 数字加密 --非满分
16/20 非满分,待来日复习双指针再分析原因 #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> #include<bits/stdc.h> using namespace std;void reverStr(char str[]){int len strlen(str);for(int i0;i&l…
端到端对话模型新突破!Facebook发布大规模个性化对话数据库
作者|Pierre-Emmanuel Mazare 等译者|郝毅编辑|Debra出处丨 AI 前线AI 前线导读:聊天机器人是目前非常流行的一种人工智能系统。目前大部分聊天机器人的衔接性都不是很好,尤其是在没有主动的重调优策略下训练出的端到端…

上传文件大小的配置Webcong
修改Webcong文件:<system.web><httpRuntime maxRequestLength"40690" useFullyQualifiedRedirectUrl"true" executionTimeout"6000" useFullyQualifiedRedirectUrl"false" minFreeThreads"…

1001 A+B Format
由于逗号的有无是从末尾数起,满足三个数(且高位还有数)就加逗号,所以有必要把字符串反转,然后寻找数组下标和3的关系 #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> using namespace st…

[转]数据库建立索引的一般依据
建立索引常用的规则如下: 1、表的主键、外键必须有索引; 2、数据量超过300的表应该有索引; 3、经常与其他表进行连接的表,在连接字段上应该建立索引; 4、经常出现在Where子句中的字段,特别是大表的字段&…

为图片添加半透明遮罩效果
平时为图片添加半透明遮罩效果,我的做法如下:利用标签i实现背景半透明遮罩。当鼠标hover时, 提高i的背景色透明度值background-color: rgba(0, 0, 0, .6) <p class"opacity-black-position"><a href"#"><img src&quo…

linux下typora安装
# optional, but recommended sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA300B7755AFCFAE# add Typoras repository sudo add-apt-repository deb https://typora.io ./linux/ sudo apt-get update# install typora sudo apt-get install typora

1005 Spell It Right
基本步骤是:100位的数字longlong也存不下,作为字符串读入,对字符串进行遍历,每个字符减去0加到总和sum上,再将整形的总和sum转化为字符串,对得到的字符串进行遍历,将每个字符映射到英文单词上。…

C#多线程学习(四) 多线程的自动管理(线程池) (转载系列)——继续搜索引擎研究...
在多线程的程序中,经常会出现两种情况: 一种情况: 应用程序中,线程把大部分的时间花费在等待状态,等待某个事件发生,然后才能给予响应 这一般使用ThreadPool(线程池…

使用Node.js快速搭建WebSocket server
原文地址:http://my.oschina.net/yushulx/blog/309413 目录[-] 安装服务端客户端参考安装 ?1npm install ws服务端 server.js ?12345678var WebSocketServer require(ws).Server, wss new WebSocketServer({port: 8080});wss.on(connection, function(ws) {ws.o…
android采用MVP完整漫画APP、钉钉地图效果、功能完善的音乐播放器、仿QQ动态登录效果、触手app主页等源码...
Android精选源码 一个可以上拉下滑的Ui效果,觉得好看可以学学 APP登陆页面适配 一款采用MVP的的完整漫画APP源码 android实现钉钉地图效果源码 一个使用单个文字生成壁纸图片的app android 仿QQ动态背景登录效果源码 功能完善的Android 手机本地音乐文件播放器 andr…

1035 Password
很适合用结构体数组的一道题 #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> using namespace std;struct info{char usr[11]"";char pwd[11]"";bool changed false; }infos[1010];int main(){int n,…

Android -- DrawerLayout
抽屉效果的导航菜单 喜欢知乎的都应该装的用知乎日报吧~这里指Android的不是IOS的。知乎日报的导航菜单就是用DrawerLayout实现的。 觉得这种侧滑的抽屉效果的菜单很好。 不用切换到另一个页面,…

Socketserver 笔记
引入Socketserver的背景:我们之前使用socket编程的时候,Server端创建一个连接循环(建立连接)一个通信循环(基于一次连接建立通信循环),(这里的黏包问题我们的实现方式是:…

Delphi 调用C#编写的WebService 参数为Null解决方法
今天测试.net 2.0的WebService,发现了一个大问题。就是无法获取参数,参数永远是null。当然了使用.net调用 没有任何问题,web测试页也正常。不论是Delphi7还是java调用的结果的都是一样的,难道是.net 2.0的Bug? 测试结…

1025 PAT Ranking
1. 考生的编号是数字字符串,但是没必要转化成整数再比较,可以直接用strcmp() 2. 对整体的排名进行编号时所有信息都已经齐备,可以边编号边输出 3. 需要有些思量的地方是部分编号,当当前学生的分数不等于他上一个该怎么办 4. 真…

C#编写的多生产者多消费者同步问题
// 多个生产者和多个消费者,能生产n个产品的情况using System; using System.Threading;public class HoldIntegerSynchronized{private int[] buffer; //缓冲区private int occupiedBufferCount 0;private int readPosition 0 , writePosition 0;//下一个读到的…

展望2009,回眸2008
2008年真正的过去了,已经感觉不到2008年的存在。 2009年来了,似乎真正的来了。 生活的压力更大了,工作也不太顺利。 希望越来越好,也不知道是不是真的该跳槽了。 待在这里很郁闷。 转载于:https://www.cnblogs.com/tacker/archive…

m_Orchestrate learning system---七、如何快速学好前端
m_Orchestrate learning system---七、如何快速学好前端 一、总结 一句话总结:看视频啊,系统看视频啊 1、如何解决单词数字太长超出边界的问题? word-wrap 把编辑删除都挤跑了 2、amaze ui中a标签和button标签可以互换么? 其实弄上…

1062 Talent and Virtue
1.在结构体里面设置total_grades属性是明智之举,但是不可以在结构体内得到total_gradesvirtue_gradetalent_grade; 2.弄清题意,对人进行分类,等级越高type值越小,但是注意分的类别也许出现交叉的情况,细的要出现在粗的…

用百度直达号获取新用户 让顾客直达商家服务
直达号是什么? 直达号,商家在百度移动平台的官方服务账号。基于移动搜索、账号、地图、个性化推荐等多种方式,让顾客随时随地直达商家服务。 直达号其实就是两个功能: √ 提供一个手机网站模板,入住商家可以建自己的手机网站。…

【Quartz】实现接口封装化(二)
原文:【Quartz】实现接口封装化(二)前言 通过昨天的努力终于算是了解Quartz这个定时器的简单使用,为了更深一步的了解和基于以后希望在项目中能使用他。所有我对他做了一下简单的封装操作,便于以后从新建立新工作和触发器&#…

怎么成为优秀的软件模型设计者?
作者:Scott Ambler著,乐林峰 译 本文选自:www.umlchina.com 2002年03月25日 我们期待自己成为一个优秀的软件模型设计者,但是,要怎样做,又从哪里开始呢? 将下列原则应用到你的软件工程中&…

1012 The Best Rank
思路:读入全部的数据之后,按照四个cmp函数对数组进行排序,给每生的4个科目的排名赋值,读入要检验的id后使用strcmp对数组中的id进行遍历(幸好这里数组大小和要检验的数目乘积不超过4万),如果找到了相同id,调用写好的得…

SDWebImage使用——一个可管理远程图片加载的类库
SDWebImage托管在github上。https://github.com/rs/SDWebImage 这个类库提供一个UIImageView类别以支持加载来自网络的远程图片。具有缓存管理、异步下载、同一个URL下载次数控制和优化等特征。 将SDWebImage类库添加入工程时,一定注意需要添加MapKit.framework&…

EXECL使用技巧(转)
2007-03-18 09:07 一、求字符串中某字符出现的次数: 例:求A1单元格中字符"a"出现的次数: LEN(A1)-LEN(SUBSTITUTE(A1,"a","")) 二、如何在不同工作薄之间复制宏: 1、打开含有宏的工作薄,…

微信小程序(canvas)画图保存到本地相册(wepy)
html标签部分 因为这个需要用户授权 所以需要使用button,画布使用的是canvas,这个可以参考小程序官方文档,代码如下 <button classbtn type"default" open-type"getUserInfo" tapexportImg>生成图片保存到本地&l…