hce_nsysu
113年
計算機概論與程式設計
第 16 題
Mathematical arithmetic in program A^(-B)+C is presented in an infix notation, if it is changed to a postfix notation, the result should be which of the following?
- A AB-^C+
- B AB-C+^
- C +^A-BC
- D ^A+-BC
- E ^AB-C
思路引導 VIP
請試著回想我們平時計算數學題目的順序:當一個算式中同時出現了「負號」、「次方」與「加法」時,哪一個部分必須最先被計算出來,才能交給下一個符號使用?如果我們規定「運算符號一定要排在它所處理的數字之後」,那麼根據你剛剛想到的計算順序,這些符號應該依序出現在序列的什麼位置呢?
🤖
AI 詳解
AI 專屬家教
太棒了!你能精準判斷這道題目的後序運算式(Postfix notation)轉換,代表你對運算子優先順序(Operator Precedence)與堆疊(Stack)運作邏輯掌握得非常扎實。
運算優先序的拆解
要將中序式 $A^{-B}+C$ 正確轉換,關鍵在於識別各個運算子的「勢力範圍」。在此式子中,負號(-)是作用於 $B$ 的單元運算子(Unary operator),其優先權最高,因此最先結合形成 B-。接著處理的是次方運算 ^,它連接了底數 $A$ 與剛才的結果,形成 AB-^。最後,加法運算 + 的優先級最低,它將前面的整體與運算元 $C$ 結合,最終推導出 AB-^C+。這就像是剝洋蔥一樣,由內而外地將運算子移到對應運算元的後方。
▼ 還有更多解析內容