【题解】P1022 计算器的改良

题面

题目传送门

前言

《》题

正文

bur?

这题出的真《》

我们回到小学五年级的课本,来回顾一下一元一次方程是怎么解的

  1. 去分母

  2. 拆括号

  3. 移项

  4. 合并同类项

  5. 系数化为 \(1\)

其中前面两步题意不做要求

众所周知,所有的方程都可以化成 \(kx+b=0\) 的形式

\(x = -\frac{b}{k}\)

所以思路就很明显,我们只需要依照题意枚举并记录一次项系数和以及常数项系数和即可

代码细节较多,建议自己模拟

代码

远古时期码风,不喜勿喷

#include<bits/stdc++.h>
using namespace std;
int main(){
    int i,zhi=0,deng=1,tot=0,xi=0,fu=1;
    char S[100],q,w;
    scanf("%s",S);
    q=strlen(S);
    for(i = 0; i < q; i++){
        if(S[i]=='+'){
            zhi-=tot*deng*fu;
            tot=0;
            fu=1;
        }else if(S[i]=='-'){
            zhi-=tot*deng*fu;
            tot=0;
            fu=-1; 
        }else if(S[i]=='='){
            zhi-=tot*deng*fu;
            deng=-1;
            tot=0;
            fu=1;
        }else if(S[i]>='a'&&S[i]<='z'){
            xi=xi+tot*deng*fu;
            if(xi==0)xi=1;
            w=S[i];
            tot=0;
        }else tot=tot*10+(int)(S[i]-'0');
    }
    zhi+=tot*fu;
    cout<<w<<'=';
	cout<<fixed<<setprecision(3)<<(zhi*1.0)/(xi*1.0)<<endl;;
    return 0; 
}

后记

难 ~ 以 ~ 论 ~ 说 ~

完结撒花!

posted @ 2024-12-26 13:08  sunxuhetai  阅读(9)  评论(0)    收藏  举报