HDU 1237 簡單計算器

2021-08-15 10:37:27 字數 628 閱讀 3214

題目實現起來比較複雜…雖然題意很簡單…

目前看到的乙個比較簡單的方法就是:

1.首先讀入第乙個數,讀入後面的符號,如果數為0且符號為換行,退出。否則把數丟進棧中

2.讀入後面的數,如果之前的符號是乘/除號,那麼把棧頂的數拿出來與當前的數進行運算,算完丟回棧裡。如果是+/-,那麼把當前數的正負值弄一下然後丟進棧裡就好了

3.讀到換行符的時候,依次把棧裡的數拿出來加起來即可

中間實現很多小細節要留意…特別是測試樣例「0+0」很坑爹…

#include

#include

#include

using

namespace

std;

int main()

t = getchar();

cin >> t2;

if (t == '*')

else

if (t == '/')

else

if (t == '-')

else

if (t == '+')

sta.push(t2);

t = getchar();}}

return

0;}

hdu1237 簡單計算器

模擬棧運算,其實遞迴也可以,不過我夠嗆能寫的出來 其實老早就看過表示式求值的問題,只不過一直沒有敲過,今天敲了一下,發現還是有不少問題的 code include include include using namespace std bool check char,char void solve ...

hdu 1237 簡單計算器

模擬棧。設兩個陣列,乙個裝運算元,乙個裝操作符。根據優先順序,先乘除,後加減。include include include include char s 210 op 200 s1 200 double a 200 int char num char s1,int n 字串轉化成int型數 ret...

HDU1237 簡單計算器

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