※ 引述《hatasum (我很可愛)》之銘言:
: 假設題目是這樣
: 12+3*5-(25-6*( 12-5)+5-(7-2*3))-11
: 我的想法是
: 一個矩陣存數字
: [12, 3, 5, 25, 6, 12, 5, 5, 7, 2, 3, 11]
: 一個矩陣存+-*/ 其中 +:1 -:2 *:3 /:4
: [1 3 2 2 3 2 1 2 2 3 2]===>if 值>2 ,先算;
: 一個矩陣存()
: [3 5 -7 8 -11 -11]
: 正數代表"(" 負數代表")"
: 其中3代表第4個數字前面有(
: 所以-7代表第8個數字前面有")"
: ps:其實應該再把[3 5 -7 8 -11 -11]轉成[8 -11][5 -7][3 -11]
: 然後按下"等於"
: 就把答案依照這三個矩陣算出來
: 目前我正在研究這個的邏輯...XD我感覺有點複雜
: 但是覺得這題目還滿有趣的 所以提供出來 大家空閒時可以想想
: ps:這不是我的作業...只是突然想到這有趣的題目...XD
這個問題簡單講就是要實作具有operator precedence特徵的計算機
實作:用lex + yacc
研究:請參閱compiler課本
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.160.182.60