洛谷 P1022 计算器的改良
题解:字符串模拟
坑点:
1) 0/-1=-0.
这是因为(来自洛谷讨论区某大犇)
double下存储的数字会有精度误差,比如0可能被存成0.000000000...01
然而如果你乘上或者除以一个负数,可能就变成了-0.000000000...01
然后因为浮点数是先判定符号再计算数值,就出现了负0这一情况
2)我遇到的就这一个....
具体做法是以-,+,=为分界,分别累加字母的系数和实数
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std; int now,len,f,c,a,b; string s; //6a-5+1=2-2a; char ans; int main(){
ios::sync_with_stdio(false);
cin>>s;len=s.length();f=;s[len]='+';len++;
while(){
if(s[now]>='a'&&s[now]<='z'){
a=a+f*(c==?:c);ans=s[now];
f=; c=; now++;
continue;
}
if(s[now]=='-'){
b=b+f*c;
f=-;c=;now++;
continue;
}
if(s[now]=='+'){
b=b+f*c;
f=;c=;now++;
continue;
}
if(s[now]>=''&&s[now]<=''){
c=c*+s[now]-'';
now++;
continue;
}
if(s[now]=='='){
b=b+f*c;
break;
}
} b=b*-;now++;c=;f=;
while(now<len){
if(s[now]>='a'&&s[now]<='z'){
a=a-f*(c==?:c);ans=s[now];
f=;c=;now++;
continue;
}
if(s[now]=='-'){
b=b+f*c;
f=-;c=;now++;
continue;
}
if(s[now]=='+'){
b=b+f*c;
f=;c=; now++;
continue;
}
if(s[now]>=''&&s[now]<=''){
c=c*+s[now]-'';
now++;
continue;
}
}
if(b==)printf("0.000\n");
else
printf("%c=%.3f\n",ans,b*./a);
return ;
}
洛谷 P1022 计算器的改良的更多相关文章
- 洛谷—— P1022 计算器的改良
P1022 计算器的改良 题目背景 NCL是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在该公司某型号的计算器上加上解一元一次方程的功能.实验室将这个任务交给了 ...
- 洛谷P1022 计算器的改良
P1022 计算器的改良 题目背景 NCL是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在该公司某型号的计算器上加上解一元一次方程的功能.实验室将这个任务交给了 ...
- [NOIP2000] 提高组 洛谷P1022 计算器的改良
题目背景 NCL是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在该公司某型号的计算器上加上解一元一次方程的功能.实验室将这个任务交给了一个刚进入的新手ZL先生. ...
- 洛谷——P1022 计算器的改良
https://www.luogu.org/problem/show?pid=1022#sub 题目背景 NCL是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在 ...
- (水题)洛谷 - P1022 - 计算器的改良
https://www.luogu.org/problemnew/show/P1022 服了,居然还有+0.000和-0.000的不同,真的服了. #include<bits/stdc++.h& ...
- P1022 计算器的改良
P1022 计算器的改良 题目背景 NCL 是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在该公司某型号的计算器上加上解一元一次方程的功能.实验室将这个任务交给 ...
- P1010 幂次方 P1022 计算器的改良
P1010 幂次方 一.题目 https://www.luogu.org/problemnew/show/P1010 二.代码 #include<bits/stdc++.h> using ...
- 2021.07.26 P1022 计算器的改良(字符串)
2021.07.26 P1022 计算器的改良(字符串) 改进: 如果是我出题,我一定把未知数设为ab.buh.bluesky之类的长度不只是1的字符串! 题意: 一个一元一次方程,求解. 分析: 1 ...
- 洛谷 P2614 计算器弹琴
P2614 计算器弹琴 题目描述 总所周知,计算器可以拿来干很多它本不应该干的事情,比如写作文.(参看洛谷P2549) 小A发现了一个计算器的另一个隐藏功能——弹琴. http://www.bilib ...
随机推荐
- [spring]<context:property-placeholder/>
问题: 有些参数在某些阶段中是常量,这些参数在不同阶段之间又往往需要改变,如: 在开发阶段我们连接数据库时的url,username,password等信息 分布式应用中client端的server地 ...
- 基于哈夫曼编码的压缩解压程序(C 语言)
这个程序是研一上学期的课程大作业.当时,跨专业的我只有一点 C 语言和数据结构基础,为此,我查阅了不少资料,再加上自己的思考和分析,实现后不断调试.测试和完善,耗时一周左右,在 2012/11/19 ...
- poj2187凸包最远点对
暴力过了 #include<map> #include<set> #include<cmath> #include<queue> #include< ...
- Spring Boot总结
一.Spring Boot 入门 1.Spring Boot 简介 简化Spring应用开发的一个框架: 整个Spring技术栈的一个大整合: J2EE开发的一站式解决方案: 2.微服务 2014,m ...
- 关闭多个screen
由于开了很多个screen同时工作,关闭是一个一个比较麻烦,写个命令在这以便日后想不起来时可以用到. 1.先看看有多少个screen screen -ls |awk '/Socket/'|awk ...
- 【Raspberry pi】cpu、内存等查看及扩展
使用树莓派时,需要在其系统中部署几个不同功能的程序系统,并涉及到数据库读写.串口读写.web访问等,使系统使用压力较大,在查看树莓派使用情况时也遇到些许问题. free命令 total used fr ...
- 七、dbms_rowid(用于在PL/SQL程序和SQL语句中取得行标识符)
1.概述 作用:用于在PL/SQL程序和SQL语句中取得行标识符(rowid)的信息并建立ROWID,通过该包可以取得行所在的文件号,行所在文件的数据块号,行所在数据块的行号,以及数据库对象号等消息. ...
- mysqldump 使用方法
1.仅导出数据: mysqldump -t -uroot -proot pgenius RES_COM_PFT_FCST>RES_COM_PFT_FCST.sql 2.有条的导出数据: mysq ...
- bzoj2929
题解: 网络流裸题 代码: #include<cstdio> #include<cstring> #include<algorithm> #include<c ...
- zoj3656
题解: 按照位展开,然后一位一位判断 注意判断给出数据是否有问题 代码: #include<cstdio> #include<cmath> #include<algori ...