作者hatasum (我很可愛)
看板C_Sharp
標題[問題] 我想做個能先計算括號及乘除的計算機
時間Wed Sep 10 00:24:31 2008
假設題目是這樣
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
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.0.217.74
1F:推 MRjk:我記得這東西資結還是什麼課有教過 09/10 00:44
2F:→ poga:infix to postfix 09/10 00:55
3F:→ leo60037:- - + 12 * 3 5 - + - 25 * 6 - 12 5 5 - 7 * 2 3 11 09/10 07:01
4F:→ leo60037:- - + 12 15 - + - 25 * 6 - 12 5 5 - 7 * 2 3 11 09/10 07:03
5F:→ leo60037:- - 27 - + - 25 * 6 - 12 5 5 - 7 * 2 3 11 09/10 07:05
6F:→ leo60037:- - 27 - + - 25 * 6 7 5 - 7 * 2 3 11 09/10 07:05
7F:→ leo60037:- - 27 - + - 25 42 5 - 7 * 2 3 11 09/10 07:06
8F:→ leo60037:- - 27 - + -17 5 - 7 * 2 3 11 09/10 07:07
9F:→ leo60037:- - 27 - -12 - 7 * 2 3 11 09/10 07:07
10F:→ leo60037:- - 27 - -12 - 7 6 11 09/10 07:07
11F:→ leo60037:- - 27 - -12 1 11 09/10 07:08
12F:→ leo60037:- - 27 -13 11 09/10 07:08
13F:→ leo60037:- 40 11 09/10 07:09
14F:→ leo60037:29 09/10 07:09
15F:→ reptile0426:真是辛苦上面這位了@@ 09/10 10:10
16F:推 horngsh:這問題我以前有問過, 正解是用recursive descendant 09/10 10:56
17F:推 horngsh:parsing.. 09/10 10:56