Luogu P1981 表示式求值

2021-07-26 08:33:40 字數 805 閱讀 1925

給你乙個只包含0~ 9、+、*這 12 種字元的算式,求出它的值mod 10000

這題目有乙個北大的神犇哥哥給我們講過(我無恥的沒有聽懂),他說要用:

字串字尾表示式

棧60多行的程式

其實呢,簡單的模擬就好了……

反正輸入的結尾是』\n』,那麼我們就用乙個while來輸入就好了。

然後最後乙個數嘛,就用乙個標記判斷是加法還是乘法,並用k來記錄下前乙個數。

說實話對於乙個數我的程式會炸,於是我打了表。有人知道怎麼判斷乙個數的可以@我一下哈

#include//interesting的萬能庫

using

namespace

std;

int i,m,n,j,k=1,a,ans;//k用來記錄加的,但必須先是1,不然就爆0了

char c;

const

int modd=10000;

int main()

while(c!='\n')

else

ans%=modd;//這裡也要mod一下

scanf("%d%c",&a,&c);

}if(m)cout

<<(ans+k*a)%modd;//對於最後乙個數來說,看標記判斷是加法還是乘法

else

cout

<<(ans+a)%modd;

return

0;}

這題好像沒什麼好總結的,但是我還會去研究一下用神犇的方法怎麼做的(眾:不要裝)

對了,有什麼錯誤請提出好嗎,我會改正的(^_^)

P1981 表示式求值

題目鏈結 題目描述 給定乙個只包含加法和乘法的算術表示式,請你程式設計計算表示式的值。輸入格式 一行,為需要你計算的表示式,表示式中只包含數字 加法運算子 和乘法運算子 且沒有括號,所有參與運算的數字均為 0 到 2 31 1之間的整數。輸入資料保證這一行只有 0 9 這 12種字元。輸出格式 乙個...

P1981 表示式求值

題解 這個題聯想一下 p1310 表示式的值 思路就是輸入中綴式,轉成字尾式,然後按字尾式計算,完美!but!會嚴重re,因為你可能會輸入中綴式的時候輸入非常的長,然後你還要開棧,開字尾式陣列,還要轉化,嚴重re what about 一邊輸入一邊處理?how?首先你一定會輸入乙個數字 因為這是中綴...

洛谷p1981 表示式求值

題前廢話 咱也不知道咱寫了個什麼神奇的 導致 rqy都看不明白它是怎麼re掉的,的大致思路是這樣的 對於這樣乙個中綴表示式,先轉化成它的字尾表示式的形式,然後利用p1449 字尾表示式 這道題的solution來求解這個式子,但是咱也不知道為啥咱也找不出來為啥,它的所有語句都是可以正常執行的,最後答...