表示式計算4(棧)

2021-10-06 12:17:31 字數 1005 閱讀 3275

題目描述

給出乙個表示式,其中運算子僅包含+,-,*,/,^(加 減 乘 整除 乘方)要求求出表示式的最終值

資料可能會出現括號情況,還有可能出現多餘括號情況

資料保證不會出現\geq 2^的答案資料保證不會出現≥2

31的答案

資料可能會出現負數情況

輸入描述:

僅一行,即為表示式

輸出描述:

僅一行,既為表示式算出的結果

示例1輸入

複製(2+2)^(1+1)

輸出複製

16備註:

表示式總長度 \leq 30表示式總長度≤30

題意:略。

題記:略。

#include

using namespace std;

char s[50]

;stack<

int>s1;

stack<

char

>s2;

intlevel

(char op)

intpow

(int a,

int b)

return res;

}void

calc

(char op)

intmain()

continue;}

if(s[i]

=='('

)elseif(

!s2.

empty()

&&s2.

top()==

'(')

s2.pop();

}else

s2.push

(s[i]);

}}}while

(!s2.

empty()

&&s2.

top()!=

'('&&s2.

top()!=

')')

cout

)

}

計算表示式 棧

問題 現在有乙個合法的二進位制表示式,請計算出該表示式的值 input 輸入一行字串,表示乙個二進位制表示式。長度不超過 100,000 ouput 輸出表示式的值 input output 0 1 0 1 1 0 1 1 兩種方法 1 被動 遇到右括號再進行運算,直至左括號 include inc...

表示式計算4

給出乙個表示式,其中運算子僅包含 要求求出表示式的最終值,資料可能會出現括號情況,還有可能出現多餘括號情況資料保證不會出現 maxlongint的資料,資料可能會出現負數情況 僅一行,即為表示式 僅一行,既為表示式算出的結果 2 2 1 1 16 表示式總長度 30 轉變為 將乙個中序表示式轉化成為...

計算表示式值(字尾表示式) 棧

處理表示式主要是對優先順序以及括號的判斷 1.運算子棧頂的優先順序小於加入的時,需要將所有的不評級的取出並計算,2.當遇到 時,需要括號內的運算全部處理 2.其他情況全部加入運算子棧和資料棧 include include include using namespace std typedef lo...