給你乙個只包含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來求解這個式子,但是咱也不知道為啥咱也找不出來為啥,它的所有語句都是可以正常執行的,最後答...