給定乙個只包含加法和乘法的算術表示式,請你程式設計計算表示式的值的最後四位。
輸入僅有一行,為需要你計算的表示式,表示式中只包含數字、加法運算子'+'
和乘法運算子'*'
,且沒有括號,所有參與運算的數字均為0
到2^-1
之間的整數。輸入資料保證這一行只有0~9
、'+'
、'*'
這 12
種字元。(輸入字串長度不超過 600000
)輸出只有一行,包含乙個整數,表示這個表示式的值。注意:當答案長度多於 4
位時,請只輸出最後 4
位。不要輸出多餘的前導零。
樣例輸入1
1+1*3+4
樣例輸出1
8
樣例輸入2
1+1234567890*1
樣例輸出2
7891
重要思路:兩個棧。
#include#include#include//包含一些判斷函式
using namespace std;
//可利用樣例1進行推倒驗算
int main()
else
stc.push('*');
}else
stc.push('+');
}} }
printf("%d\n", stn.top());
return 0;
}
方法二:+++++
#includeusing namespace std;
//1+2*3+3=10
int main(void)
}for(int i=1;i<=index;i++)
printf("%d\n",ans);
}
表示式求值
程式的說明見清華大學出版社 資料結構 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 ...