棧模擬式子的計算

2021-07-16 20:56:36 字數 1169 閱讀 5822

description

讀入乙個只包含 +, -, *, / 的非負整數計算表示式,計算該表示式的值。 

input

測試輸入包含若干測試用例,每個測試用例佔一行,每行不超過200個字元,整數和運算子之間用乙個空格分隔。沒有非法表示式。當一行中只有0時輸入結束,相應的結果不要輸出。 

output

對每個測試用例輸出1行,即該表示式的值,精確到小數點後2位。 

sample input

1 + 2

4 + 2 * 5 - 7 / 11

0

sample output

3.00

13.36

乙個棧s1存符號(+或-),乙個棧是s2存double數,當為(+或-)時,從s1提取乙個符號(+或-),從s2提取2個數,然後相運算,將所得的結果壓入s2棧,同時將先前的符號入棧s1;當為(*或/)時,從s2提取乙個數,提取符號後的數,相運算後入棧s2;

y

#include#include#include#include#include#include#include#include#define inf 0x3f3f3f3f

#define ll long long

using namespace std;

stacks1;

stacks2;

int main()

s2.push(sum);

continue;

}if(str[i]==' ')

continue;

if(str[i]=='+'||str[i]=='-')

s1.push(str[i]);

}else if(str[i]=='*'||str[i]=='/')

double a=s2.top();

s2.pop();

//cout

a=a*sum;

else

a=a/sum;

//cout

double sumx=0;

if(s1.empty()==1)

else

printf("%0.2f\n",sumx);}}

return 0;

}

計算乙個式子的值

1 無小括號 2 有小括號 import collections class solution def calculate self,s str int print value str,0 0 def value str,i 返回長度為2的陣列,返回計算結果和算到的位置 que collection...

AcWing 模擬棧 棧 模擬

時 空限制 1s 64mb 實現乙個棧,棧初始為空,支援四種操作 1 push x 向棧頂插入乙個數x 2 pop 從棧頂彈出乙個數 3 empty 判斷棧是否為空 4 query 查詢棧頂元素。現在要對棧進行m個操作,其中的每個操作3和操作4都要輸出相應的結果。第一行包含整數m,表示操作次數。接下...

B 白兔的式子

已知f 1 1 1,f i j a f i 1 j b f i 1 j 1 i 2,1 j i 對於其他情況f i j 0 有t組詢問,每次給出a,b,n,m,求f n m mod 998244353 第一行為乙個整數t,表示詢問個數。接下來一共t行,每行四個整數a,b,n,m。一共t行,每行乙個整...