• #luogu整理 P1022 计算器的改良:模拟


    回忆一下自己AC的第一个黄题(模拟

    luogu P1022

    我们要解一元一次方程,我们就可以把它整理成一般形式(不一定是一般形式,只要能知道系数就行),然后直接根据公式求出来就好。

    #include<bits/stdc++.h>
    using namespace std;
    char in[99999];
    int l,r;
    int deng;
    char a='y';
    int xs[99999],zrh[99999];
    double xishu,changshu;
    int cnt1,cnt2;
    int main(){
        cin>>in;
        for(int i=0;i<strlen(in);i++){
            if(in[i]=='='){
                deng=i;
            }
            if((in[i]>'9'||in[i]<'0')&&(in[i]!='-'&&in[i]!='+'&&in[i]!='=')){
                a=in[i];
    //			cout<<in[i]<<endl;
            }
        }
    //	cout<<a<<endl;
        int asdf=0;
        while(r<strlen(in)){
            l=r;
            asdf=0;
            while(in[r]>='0'&&in[r]<='9'){
                r++;
            }
    //		cout<<l<<' '<<r<<" ";
            if((r-l)>=1){
                for(int i=l;i<r;i++){
                    asdf=asdf*10+int(in[i]-'0');
                }
                if(in[l-1]=='-') asdf*=-1;
                if(in[r]==a){
                    r++;
                    if(l<deng) asdf*=-1;
                    xs[cnt1]=asdf;
                    xishu+=xs[cnt1];
                    cnt1++;
                }else{
                    if(r>deng) asdf*=-1;
                    zrh[cnt2]=asdf;
                    changshu+=zrh[cnt2];
                    cnt2++;
                }
            }
    //		cout<<asdf<<endl;
            r++;
        }
        if(in[0]==a) xishu--;
        double ans;
    //    cout<<xishu<<endl;
        ans=double(changshu/xishu);
        if(ans==0) ans=0;
        printf("%c=%.3f",a,ans);
        return 0;
    } 
    
  • 相关阅读:
    Activity生命周期 onCreate onResume onStop onPause (转)
    职场链接
    memset中的sizeof
    c文件操作 (转)
    串口编程 tcflush()函数 (转)
    tcflush 功能(转)
    串口开发(转)
    ios github网址
    做移动端视频通话软件,大致看了下现有的开源软件(转)
    PJSIP框架
  • 原文地址:https://www.cnblogs.com/Cao-Yucong/p/12774896.html
Copyright © 2020-2023  润新知