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行,每行乙個整...