建设企业网站的价格,智慧团建网站注册登录入口,郑州做网站推广哪家好,免费好用的网站制作今天是编程集训的第二天#xff0c;也是我来到CSDN整整1年。感谢所有阅读过我的文章的人#xff0c;谢谢。
今天的比赛难度略低于昨天#xff0c;但这道题也卡了我好久。
进入正题
题目#xff1a;
题目描述#xff1a;
NCL是一家专门从事计算器改良与升级的实验室也是我来到CSDN整整1年。感谢所有阅读过我的文章的人谢谢。
今天的比赛难度略低于昨天但这道题也卡了我好久。
进入正题
题目
题目描述
NCL是一家专门从事计算器改良与升级的实验室最近该实验室收到了某公司所委托的一个任务需要在该公司某型号的计算器上加上解一元一次方程的功能。实验室将这个任务交给了一个刚进入的新手ZL先生。为了很好的完成这个任务ZL先生首先研究了一些一元一次方程的实例
43x8
6a5122a
512y0
ZL先生被主管告之在计算器上键入的一个一元一次方程中只包含整数、小写字母及、、这三个数学符号当然符号“─”既可作减号也可作负号。方程中并没有括号也没有除号方程中的字母表示未知数。 你可假设对键入的方程的正确性的判断是由另一个程序员在做或者说可认为键入的一元一次方程均为合法的且有唯一实数解。 输入 编写程序解输入的一元一次方程 输出 将解方程的结果(精确至小数点后三位)输出
样例
输入
6a5122a
输出
a0.750
思路
这道题可以看出来不需要任何的算法那就是一个大大大大大模拟一堆细节需要注意甚至还有个坑点有个测试点应该输出0.000但运算结果是-0.000就很坑人。
由于没什么思路直接上代码吧
代码
//主体代码
while(cinc) //不断输入
{if(c0 c9) //是数字{cntcnt*10c-0;}if(c) //运算{sumf*r*cnt;f1,cnt0;}if(c-)f表示下一个数应该还是-若是则*1没有变化若是-则*-1变成负数{sumf*r*cnt;f-1,cnt0;}if(c) {sumr*f*cnt;r-1,f1;//r表示等号后的所有运算符会改变所以都需要*-1cnt0;}if(ca cz) //记录未知数{xc;if(cnt) sumxf*r*cnt;else sumxf*r;cnt0;}
} 完整代码
#includealgorithm
#includeiostream
#includecstring
#includecmath
#includecstdio
#includestack
#includequeue
using namespace std;char c,x;
int sum,sumx;
int r1,f1,cnt;
double res;int main()
{while(cinc) {if(c0 c9) {cntcnt*10c-0;}if(c) {sumf*r*cnt;f1,cnt0;}if(c-){sumf*r*cnt;f-1,cnt0;}if(c) {sumr*f*cnt;r-1,f1;cnt0;}if(ca cz) {xc;if(cnt) sumxf*r*cnt;else sumxf*r;cnt0;}}sumf*r*cnt;res-sum*1.0/sumx;if(res0.0) res0;printf(%c%.3lf,x,res);return 0;
} 没登陆的复制链接
云剪贴板 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/paste/uudqs2q5也希望各位不论看谁的题解都能看完思路再看代码