/雾 noip2000发生了什么?为什么洛谷上就一道题- -
计算器的改良
分析:字符串模拟题。记录分别记录等式两边的系数与常数即可。以前在codevs上做过,也就直接把代码贴上来了。
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
#include<iostream> #include<algorithm> #include<cstdio> #include<iomanip> #include<cmath> using namespace std; int main() { char c,l; int sum1=0,sum2=0,t1=0,t2=0,k=0; bool b=1,is_f=0; while((c=getchar())!=EOF) { if(c=='-'||c=='+'||c=='=') { if(is_f)k=-k; if(b)sum1+=k; else sum2+=k; k=0; if(c=='-') { is_f=1; } else { is_f=0; } if(cin.peek()>='a'&&cin.peek()<='z')k=1; } if(c>='0'&&c<='9') { k*=10; k+=c-'0'; } if(c>='a'&&c<='z') { l=c; if(is_f)k=-k; if(b)t1+=k; else t2+=k; k=0; } if(c=='=') { b=0; } } if(is_f)k=-k; sum2+=k; double m=(double)(sum2-sum1)/(t1-t2); if(m==0)m=fabs(m); cout<<l<<"="<<fixed<<setprecision(3)<<m; return 0; }
总结:洛谷一道题什么鬼???