#22609: C 可參考遞迴下降分析


teddy1565@gmail.com (Zephyrus)

School : 臺北市立大安高級工業職業學校
ID : 97890
IP address : [219.70.192.87]
Last Login :
2021-05-03 17:07:21
a017. 五則運算 | From: [219.70.192.87] | Post Date : 2020-09-19 14:00

第一步
先檢查一遍字串
如果+或-
就遞迴左邊的字串 (+/-) 右邊的字串
直到字串內不包含+/- 同時如果遇到()就先跳過 並存入左或右的字串

第二部
然後做*/% 但要注意的是因為 計算是由左至右 所以要找到字串中最後一個operaotr
然後 同樣遞迴 左邊的字串 (*/%) 右邊的字串
並且一樣先跳過括號
一路解析

第三步:
直到字串內的開頭及結尾是都是括號
最後解析括號內的字串
去除兩邊括號後直接遞迴 字串本身

提醒:
特別的一點是 減法可以用 加法去實現 這樣的話可以解決負數問題
好比:
-1-2-3 = -6

-1 - (2 + 3) = -6

 
ZeroJudge Forum