表示式求值

2021-09-18 01:44:38 字數 1171 閱讀 3214

p1981

題目描述

給定乙個只包含加法和乘法的算術表示式,請你程式設計計算表示式的值。

輸入輸出格式

輸入格式:

一行,為需要你計算的表示式,表示式中只包含數字、加法運算子「+」和乘法運算子「 ×」,且沒有括號,所有參與運算的數字均為 0 到 2^ 之間的整數。

輸入資料保證這一行只有 0−9、+、 ×這 12 12種字元。

輸出格式:

乙個整數,表示這個表示式的值。

注意:當答案長度多於 4 位時,請只輸出最後 4 位,前導 0 不輸出。

輸入輸出樣例

輸入樣例#1:

1+13+4

輸出樣例#1:

8輸入樣例#2:

1+12345678901

輸出樣例#2:

7891

輸入樣例#3:

1+1000000003*1

輸出樣例#3:

4

#includeusing namespace std;

stackn;

stacks;

string x;

long long int ans;

int l;

main()

if(f)

} if(x[i]=='+'||x[i]=='*')

}int size=n.size();//看看最後數字棧中還剩多少數字直接相加

for(int i=1;i<=size;i++)

printf("%lld",ans%10000);

return 0;

}

**解釋:

1.先算乘法,在算加法;

2.建立乙個數字棧n,字串棧s,遍歷字元陣列遇到數字轉換為數字push入n中,遇到字元壓入s中,

3.最後用size()函式返回n的元素個數,求和完成

4.看不懂可以先看看我的模擬棧呦,一樣滴作者,一樣的棧,助你理解

5.加油努力鴨!qaq,你是中國 it 的希望,「 — 「

源**及執行如下

相關題目:

尋寶:小朋友數字:

比例化簡:

表示式求值

程式的說明見清華大學出版社 資料結構 c語言版 include include define stack init size 40 define stackincrement 20 define ok 1 define false 0 typedef structs stack typedef st...

表示式求值

既然是表示式求值,自然需要在記憶體中儲存計算結果以及中間值。在 用c語言寫直譯器 一 中提過 變數要求是若型別,而 c 語言中的 view plaincopy to clipboardprint?in basic io.h define memery size 26 typedef enum var...

表示式求值

寫了乙個下午,各種糾結,各種問,終於搞明白了。但是自己還是想出來的一點東西的。很爽歪歪的,哈哈。先貼第一次的 include include include include include includeusing namespace std char data 7 7 int sign char ...