洛谷p1981 表示式求值

2022-02-19 21:05:25 字數 1051 閱讀 5406

題前廢話:

咱也不知道咱寫了個什麼神奇的**導致_rqy都看不明白它是怎麼re掉的,

**的大致思路是這樣的:對於這樣乙個中綴表示式,先轉化成它的字尾表示式的形式,然後利用p1449 字尾表示式 這道題的solution來求解這個式子,但是咱也不知道為啥咱也找不出來為啥,它的所有語句都是可以正常執行的,最後答案也求出來顯示出來了,然後它就停止執行了呢???甚至於return 0(main函式中的)都可以執行呢qwq

貼一下**吧,希望大佬們幫忙看一看啊qwq:

#includeusing

namespace

std;

intcnt,x,b,c,num;

string

a,d;

stack

s1;stack

long>s;

intmain()

else

s1.push(a[i]);}}

}d[cnt++]='.'

;

while(!s1.empty())

for(int i=0;i)

if(d[i]=='-')

if(d[i]=='*')

if(d[i]>='

0'&&d[i]<='9'

)

if(d[i]=='

.'&&num!=0

) }

cout

<10000

;}

view code

好啦接下來是是正解:

solution:

首先這個讀入就非常神奇啦誒:先讀入乙個數字(顯然這個表示式只有數字和運算符號(+*)沒題目描述沒有-哦),然後讀入就很神奇:

cin>>a;//先讀入乙個數字

a%=10000

;while(ch!='\n'

)

else

s.push(b);

}while

(s.size())

cout

<10000

<

}

end-

P1981 表示式求值

題目鏈結 題目描述 給定乙個只包含加法和乘法的算術表示式,請你程式設計計算表示式的值。輸入格式 一行,為需要你計算的表示式,表示式中只包含數字 加法運算子 和乘法運算子 且沒有括號,所有參與運算的數字均為 0 到 2 31 1之間的整數。輸入資料保證這一行只有 0 9 這 12種字元。輸出格式 乙個...

P1981 表示式求值

題解 這個題聯想一下 p1310 表示式的值 思路就是輸入中綴式,轉成字尾式,然後按字尾式計算,完美!but!會嚴重re,因為你可能會輸入中綴式的時候輸入非常的長,然後你還要開棧,開字尾式陣列,還要轉化,嚴重re what about 一邊輸入一邊處理?how?首先你一定會輸入乙個數字 因為這是中綴...

資料結構 P1981 表示式求值

給定乙個只包含加法和乘法的算術表示式,請你程式設計計算表示式的值。一行,為需要你計算的表示式,表示式中只包含數字 加法運算子 和乘法運算子 且沒有括號,所有參與運算的數字均為 0到 2 之間的整數。輸入資料保證這一行只有0 9 這 1212種字元。乙個整數,表示這個表示式的值。注意 當答案長度多於 ...