Skip to content

a664: 四則運算 #86

@HuangJi

Description

@HuangJi

內容 :

一般日常生活中所用的數學表示法都是中序法。但是中序法有運算符號的優先權結合性問題,再加上複雜的括號困擾,對於編譯器處理上很傷腦筋。解決之道是將它換成後序法(較常用)或前序法。因為後序法只需一個堆疊暫存器(而前序法需要2個),所以計算機中多半使用後序法來計算運算式的運算結果 。
輸入說明 :
輸入資料第一行只有一個數字n(n<=10),為代表共有幾個運算式要被計算 。接下來n行的資料,每一行代表要被計算的式子,而運算式之中,已經包含必要的左括號與右括號,與四種運算子符號:+,-,*,/。不必擔心少括號的問題,只要注意括號與四則運算的優先順序即可,而各運算式中的運算元數字,最大為65535。運算結果不會超過264-1-1。而且運算式中的括號,運算子與運算元的個數總數不會超過100個。

例如運算式 (((6+9)/3)*(6-4))

運算子只會出現 +,-,*,/。而運算元數字最大為65535。上列中的括號,運算子與運算元個數總數共有17個。

輸出說明 :
輸出每一個運算式,經由計算後的答案。
範例輸入 : help

3
(((6+9)/3)*(6-4)) 
(((8*(2-3))*4)/2)
((5+(7*6))-((3/(2-5))*4))

範例輸出:

10
-16
51

提示 :
http://content.edu.tw/senior/computer/ks_ks/et/datastruct/compute/compute.htm
標籤:
堆疊
出處: http://zerojudge.tw/ShowProblem?problemid=a664
(管理:franklin)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions