計算機的改良 模擬

2021-10-09 00:12:50 字數 1556 閱讀 2517

>description

最近實驗室收到了乙個任務:解一元一次方程。

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

4+3x=8

6a−5+1=2−2a

−5+12y=0

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

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

>input

乙個一元一次方程。

>output

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

>sample input

6a-5+1=2-2a

>sample output

a=0.750

>解題思路

一道模擬題。

把未知數移到等號左邊,把剩下的移到方程的右邊,分別記錄下他們的係數即可。

需要注意的坑:

-1a是以-a的方式呈現

在c++中,0除以乙個負數得出來的是-0

>**

#include 

#include

#include

#define ll long long

using namespace std;

ll x, y, l, s;

//x記錄等號左邊的係數,y記錄等號右邊的係數

char c, a;

double ans;

int main()

if(c >=

'0'&& c <=

'9') l = l *

10+ c -

'0';

if(c >=

'a'&& c <=

'z')

c =getchar()

;} y -= l * s;

//處理等號左邊

l =0, s =1;

c =getchar()

;while

(c !=10)

if(c >=

'0'&& c <=

'9') l = l *

10+ c -

'0';

if(c >=

'a'&& c <=

'z')

c =getchar()

;}y += l * s;

//處理等號右邊

ans =

(double) y / x;

if(ans ==

-0.0

) ans =0;

printf

("%c=%.3f"

, a, ans)

;return0;

}

計算機基礎 計算機的構成

也許有人認為技術人員不需要硬體或計算機底層原理的知識。因為這個層面的一些處理往往已經封裝好,不需要重新進行規劃。然而,事實並非如此,系統構建於硬體與作業系統之上,我們應該對計算機底層原理有一定認識,以避免在研發過程中導致的一系列安全與效能問題。計算機的發展經歷了電子管和電晶體時代 積體電路時代 中小...

計算機的計算

計算機使用二進位制。人們習慣使用十進位制,據說是因為人類的雙手有十根手指頭。與十進位制相比,二進位制有什麼特點呢?在理論上,二進位制與十進位制雖各有千秋,但沒有本質上的區別,計算時,既可以用十進位制,也可以用二進位制。但是,計算機中的二進位制與數學上的二進位制卻有很大的差別。計算機的世界中沒有正負號...

計算機 計算機基礎整理

大學四年浪費的代價。半夜整理東西 cpu 其功能主要是解釋計算機指令以及處理計算機軟體中的資料。cpu由運算器 控制器和暫存器及實現它們之間聯絡的資料 控制及狀態的匯流排構成。差不多所有的cpu的運作原理可分為四個階段 提取 fetch 解碼 decode 執行 execute 和寫回 writeb...