題目描述
給出乙個表示式,其中運算子僅包含+,-,*,/,^(加 減 乘 整除 乘方)要求求出表示式的最終值
資料可能會出現括號情況,還有可能出現多餘括號情況
資料保證不會出現\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...