亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java表達式計算

java表達式計算

讀者123 2017-01-21 21:12:31
問題描述  輸入一個只包含加減乖除和括號的合法表達式,求表達式的值。其中除表示整除。輸入格式  輸入一行,包含一個表達式。輸出格式  輸出這個表達式的值。樣例輸入1-2+3*(4-5)樣例輸出-4數據規模和約定  表達式長度不超過100,表達式運算合法且運算過程都在int內進行。
查看完整描述

2 回答

已采納
?
慕粉1529473653

TA貢獻8條經驗 獲得超2個贊

根據算術四則運算的規則:

?????????a. ?從左算到右

?????????b. 先乘除,后加減

?????????c. 先括號內,后括號外

得到算符優先表,作為計算表達式計算順序的依據。

如:q1為先來的算符,q2為后來的算符。如3+5+7,前面的+為q1,后面的+為q2,q1>q2。

http://img1.sycdn.imooc.com//58842be3000130f104090262.jpg

算法思想

1.?設定兩棧:運算符棧,操作數棧;

2.??棧初始化:設操作數棧為空;運算符棧的棧底元素為表達式起始符‘#’;

3.??依次讀入字符:是操作數則入操作數棧,是運算符則要判斷其與運算符棧棧頂元素的優先級:

?????if 棧頂算符?>?運算符:則運算符棧出一算符,操作數棧出兩操作數,計算,結果壓入操作數棧;?

??????????運算符?= 棧頂算符:運算符棧出一算符與讀取到的算符抵消;

??????????棧頂算符?<?運算符:壓入算符棧。

4.??重復執行第3小點,直到讀取到‘#’號,與算符棧頂的‘#’相抵消,最后算符棧為空,操作數棧只有一數值,即為結果。

????編程的東西自己去練練手,實現的流程都在上面了

查看完整回答
1 反對 回復 2017-01-22
?
瀝莫

TA貢獻1條經驗 獲得超0個贊

想問一下,你等等程序寫好了嗎?可以借鑒一下嗎
查看完整回答
反對 回復 2017-06-06
  • 2 回答
  • 0 關注
  • 2477 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號