洛谷 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 ...
随机推荐
- dropout 为何会有正则化作用
在神经网络中经常会用到dropout,大多对于其解释就是dropout可以起到正则化的作用. 一下是我总结的对于dropout的理解.花书上的解释主要还是从模型融合的角度来解释,末尾那一段从生物学角度 ...
- 不小心把sudoer改错了的补救方法
原本是感觉每次 sudo command 都要输入密码太费事了,就想把密码去掉.好了怎么去掉呢,自然是修改 /etc/sudoers 可是不小心修改错了,结果悲剧出现了:由于是在非root用户模式下, ...
- 18.一篇文章,从源码深入详解ThreadLocal内存泄漏问题
1. 造成内存泄漏的原因? threadLocal是为了解决对象不能被多线程共享访问的问题,通过threadLocal.set方法将对象实例保存在每个线程自己所拥有的threadLocalMap中,这 ...
- http://blog.csdn.net/milton2017/article/details/54406482
转自:python 把几个DataFrame合并成一个DataFrame——merge,append,join,conca http://blog.csdn.net/zutsoft/article/d ...
- SHOW INNODB STATUS 探秘
[InnoDB系列] -- SHOW INNODB STATUS 探秘 SHOW INNODB STATUS 探秘 转载:http://imysql.com/2008_05_22_walk_throu ...
- angularJS----filter
angularJS过滤器 过滤器(filter)正如其名,作用就是接收一个输入(隐式的接收数据源),通过某个规则进行处理,然后返回处理后的结果.主要用在数据的格式化上,例如获取一个数组中的子集,对数组 ...
- laravel中单独获取一个错误信息的方法
获取单独的错误信息的方法
- C++复习2.软件开发知识小节
高质量的软件开发 1.满足正确性,健壮性,可靠性,性能,易用性,清晰性,安全性,兼容性,扩展性,可移植性等等来评价软件的质量. 2.没有错误的程序世间难求,任何一个程序,无论他多么的小,总是存在着错误 ...
- 【移动互联网开发】Zepto 使用中的一些注意点 【转】
前段时间完成了公司一个产品的 HTML5 触屏版,开发中使用了 Zepto 这个著名的 DOM 操作库. 为什么不是 jQuery 呢?因为 jQuery 的目标是兼容所有主流浏览器,这就意味着它的大 ...
- 【LeetCode 231_整数_位运算】Power of Two
bool isPowerOfTwo(int n) { && !(n & (n - )); }