★★ 輸入檔案:computer.in
輸出檔案:computer.out
簡單對比
時間限制:1 s 記憶體限制:128 mb
問題描述
ncl 是一家專門從事計算器改良與公升級的實驗室,最近該實驗室收到了某公司所委託的乙個任務:需要在該公司某型號的計算器上加上解一元一次方程的功能。實驗室將這個任務交給了乙個剛進入的新手 zl 先生。為了很好的完成這個任務 ,zl 先生首先研究了一些一元一次方程的例項:
4+3x=8
6a-5+1=2-2a
-5+12y=0
zl 先生被主管告之,在計算器上鍵入的乙個一元一次方程中,只包含整數、小寫字母及
十、一、=這三個數學符號(當然,符號「一」既可作減號,也可作負號)。方程中並沒有括號,也沒有除號,方程中的字母表示未知數。
問題求解:
編寫程式,解輸入檔案中的一元一次方程,將解方程的結果(精確至小數點後三位)輸出至輸出檔案。你可假設對鍵入的方程的正確性的判斷是由另乙個程式設計師在做,或者說可認為鍵入的一元一次方程均為合法的,且有唯一實數解。
【輸入格式】
輸入檔案只有一行。即乙個合法的一元一次方程。
【輸出格式】
輸出檔案也只有一行。即該方程的解。
【輸入輸出樣例】
輸入檔名: computer.in
6a-5+1=2-2a
輸出檔名:computer.out
a=0.750
這就是個大模擬....**如下
#include#include#include#includeusing namespace std;
char a[2000];
char c[2000];
double ans;
int xi=0;
int st=0;
bool shu=0;
int r=0;
int re=0;
char yuan;
int l;
int main()
} //將方程『=』右的部分符號改變,然後都按左邊處理
//cout<='0'&&a[i]<='9')
//是數字的話就累計,類似快速讀入
else
if(shu) //前面是數
else xi+=re; //計算總係數
re=0;
shu=0;
st=0; //重置
}else //當前不是未知亮
else r-=re; //計算將常數項移到右邊後的總值
re=0;
shu=0;
st=0; //重置 }}
} //printf("%d %d",r,xi);
ans=double(r)/double(xi);
if(fabs(ans-0)>0.0005) //判斷ans 範圍 防止輸出-0.000這種數字;
printf("%c=%.3lf",yuan,ans);
else
printf("%c=%.3lf",yuan,fabs(ans));
} // ps:有乙個小bug 是如果係數1省略的話就會出錯,但對於這道題來說不會出現 (因為是計算器)
T 1 NOIP 2000 計算器的改良
題目背景 ncl是一家專門從事計算器改良與公升級的實驗室,最近該實驗室收到了某公司所委託的乙個任務 需要在該公司某型號的計算器上加上解一元一次方程的功能。實驗室將這個任務交給了乙個剛進入的新手zl先生。題目描述 為了很好的完成這個任務,zl先生首先研究了一些一元一次方程的例項 4 3x 8 6a 5...
NOIP 計算器的改良
題目 nclncl是一家專門從事計算器改良與公升級的實驗室,最近該實驗室收到了某公司所委託的乙個任務 需要在該公司某型號的計算器上加上解一元一次方程的功能。實驗室將這個任務交給了乙個剛進入的新手zl先生。為了很好的完成這個任務,zlzl先生首先研究了一些一元一次方程的例項 4 3x 8 6a 5 1...
計算器的改良
在codevs上遇到乙個挺新穎的題目,設計演算法解一元一次方程。ncl是一家專門從事計算器改良與公升級的實驗室,最近該實驗室收到了某公司所委託的乙個任務 需要在該公司某型號的計算器上加上解一元一次方程的功能。實驗室將這個任務交給了乙個剛進入的新手zl先生。為了很好的完成這個任務,zl先生首先研究了一...