問題描述
輸入乙個只包含加減乖除和括號的合法表示式,求表示式的值。其中除表示整除。
輸入格式
輸入一行,包含乙個表示式。
輸出格式
輸出這個表示式的值。
樣例輸入
1-2+3*(4-5)
樣例輸出
-4資料規模和約定
表示式長度不超過100,表示式運算合法且運算過程都在int內進行。
#include #include using namespace std;
stacka;
stacknum;
int bj(char a)
int int_pow(int x, int y)
return sum;
}int change(string s)
return num;
}int act(int a, int b, char op)
return result;
}int main()
int k = change(s1);
num.push(k);
i--;
} else else else if(bj(a.top()) < bj(s[i])) else
}} else else
a.pop();
sco = num.top();
num.pop();
fir = num.top();
num.pop();
result = act(fir, sco, op);
num.push(result);
}} else }}
}while(a.size() > 0)
result = num.top();
cout
}
c 實現帶加減乘除括號的式子運算
題目 給定乙個帶加減乘除括號的表示式子字串,求其結果 如 10 20 3 的結果為90 思路 一 去括號。用乙個棧記錄左括號的位置,遍歷字串,讀取到右括號後棧pop,進行括號間式子的運算,並將結果字串替換回原字串。二 進行不帶括號的式子的運算。用乙個棧記錄數字,乙個棧記錄運算子。讀到數字直接入棧,讀...
位運算實現加減乘除
include include 加法運算 int add int a,int b 補碼中正數轉負數的原理 int negative int a 減法運算 int sub int a,int b 判斷正負 bool isnegative int a 僅計算正數乘法 int multi help int...
位運算實現加減乘除
關於邏輯右移和算術右移 vs中,對於unsigned型別,是邏輯右移,對於signed,算術右移 加法器的實現 對於不考慮進製的加法 0 0 0 1 0 1 0 1 1 1 1 0 即是異或運算 考慮進製 0 0 1 0 0 0 1 0 1 1 1 即是與運算 以下程式,a即不考慮進製部分,b為進製...