• #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;
    } 
    
  • 相关阅读:
    markdown with vim
    递归
    类 sizeof
    cppcheck工具
    c++ explicit的含义和用法
    pca主成分分析
    string的使用
    linux的shell进化简史
    adb shell 无法启动 (insufficient permissions for device)
    c++ 四种转换的意思
  • 原文地址:https://www.cnblogs.com/Cao-Yucong/p/12774896.html
Copyright © 2020-2023  润新知