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

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

 

转载于:https://www.cnblogs.com/lqs6/p/7474956.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值