T 1 NOIP 2000 計算器的改良

2021-07-23 18:09:37 字數 1329 閱讀 9597

題目背景

ncl是一家專門從事計算器改良與公升級的實驗室,最近該實驗室收到了某公司所委託的乙個任務:需要在該公司某型號的計算器上加上解一元一次方程的功能。實驗室將這個任務交給了乙個剛進入的新手zl先生。

題目描述

為了很好的完成這個任務,zl先生首先研究了一些一元一次方程的例項:

4+3x=8

6a-5+1=2-2a

-5+12y=0

zl先生被主管告之,在計算器上鍵入的乙個一元一次方程中,只包含整數、小寫字母及+、-、=這三個數學符號(當然,符號「-」既可作減號,也可作負號)。方程中並沒有括號,也沒有除號,方程中的字母表示未知數。

你可假設對鍵入的方程的正確性的判斷是由另乙個程式設計師在做,或者說可認為鍵入的一元一次方程均為合法的,且有唯一實數解。

輸入輸出格式

輸入格式:

乙個一元一次方程。

輸出格式:

解方程的結果(精確至小數點後三位)。

輸入輸出樣例

輸入樣例#1:

6a-5+1=2-2a

輸出樣例#1:

a=0.750

【分析】

字串的模擬…我可能寫複雜了

【**】

//洛谷 p1022 計算器的改良  

#include

#include

#include

#include

#include

#define ll long long

#define m(a) memset(a,0,sizeof a)

#define fo(i,j,k) for(i=j;i<=k;i++)

using

namespace

std;

const

int mxn=1e6;

char s[1000005];

int num[1000005],cun[1000005];

char ch;

bool vis[1000005];

ll kl,kr; //常數項

ll al,ar; //係數項

int main()

fo(i,1,num[0])

fo(i,1,len)

if(!vis[i] && s[i]<='9' && s[i]>='0')

if(ielse kr+=tmp*mul;

}al-=ar,kr-=kl;

double ans=(double)kr/(double)al;

printf("%c=%.3lf\n",ch,ans);

return

0;}

NOIP 2000 計算器的改良 題解

輸入檔案 computer.in輸出檔案 computer.out簡單對比 時間限制 1 s 記憶體限制 128 mb 問題描述 ncl 是一家專門從事計算器改良與公升級的實驗室,最近該實驗室收到了某公司所委託的乙個任務 需要在該公司某型號的計算器上加上解一元一次方程的功能。實驗室將這個任務交給了乙...

NOIP 計算器的改良

題目 nclncl是一家專門從事計算器改良與公升級的實驗室,最近該實驗室收到了某公司所委託的乙個任務 需要在該公司某型號的計算器上加上解一元一次方程的功能。實驗室將這個任務交給了乙個剛進入的新手zl先生。為了很好的完成這個任務,zlzl先生首先研究了一些一元一次方程的例項 4 3x 8 6a 5 1...

1910 00NOIP普及組 計算器的改良

include using namespace std double l,r,ans int pd,s,v inline intread if ch if ch if ch a 0 ch a 25 if pd r k1 1 else r k1 1 return0 if ch n pd 2 ch ge...