NOIP2000普及组解题报告

/雾 noip2000发生了什么?为什么洛谷上就一道题- - 

计算器的改良

分析:字符串模拟题。记录分别记录等式两边的系数与常数即可。以前在codevs上做过,也就直接把代码贴上来了。

#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;
}
View Code

总结:洛谷一道题什么鬼???

 

posted @ 2017-09-04 18:26  lqs2002  阅读(431)  评论(0编辑  收藏  举报