作者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