首页 > 其他 > 详细

【洛谷】P1022 计算器的改良-全AC题解

时间:2019-10-29 22:38:12      阅读:88      评论:0      收藏:0      [点我收藏+]
#include <iostream>
#include <cstring>
#include <iomanip>
using namespace std;

int main()
{
    string str;
    cin>>str;
    int f=1,d=1;
    char c;

    long double k=0,b=0,num=0,ans;

    for(int i=0;i<str.length();i++)
    {
        if(str[i]>=0 && str[i]<=9)
            num=num*10+str[i]-48;

        if(str[i]>=a && str[i]<=z)
        {
            if(i==0) k=1;
            c=str[i];
            k=k+f*d*num;
            num=0;
        }

        if(str[i]==-)
        {
            b=b+f*d*num;
            num=0;
            f=-1;
        }

        if(str[i]==+)
        {
            b=b+f*d*num;
            num=0;
            f=1;
        }

        if(str[i]===)
        {
            b=b+f*d*num;
            f=1;
            num=0;
            d=-1;
        }
    }
    if(num!=0) b=b+f*d*num;
    ans =-1*b/k;

    if(ans==-0) ans=0;

    cout<<c<<"=";
    cout<<setiosflags(ios::fixed)<<setprecision(3)<<ans<<endl;


    return 0;
}

注意:eg a+2a=4  第一个a的k等于0 特例

   eg -2=6y 等号右边f要变

【洛谷】P1022 计算器的改良-全AC题解

原文:https://www.cnblogs.com/shiye-shiye/p/11761582.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!