NYOJ1272表示式求值(2)

2021-07-27 08:45:17 字數 1041 閱讀 8834



nyoj1272

本題是第九屆acm賽題

技巧:    smax(,)可以看成是  () 與 , 的結合,即,為乙個運算子,代表著,兩邊的數,分別各個位數之和,在比較大小。千萬別被smax給迷惑了。

之後就用 棧 根據優先順序進入和彈出了。

#include#includeint ch[6][6] = ,,,

,,}; //構造優先順序 順序是+ * ( ), #

int stn[1010],n; // 在這裡專門設定 # # 對應為2 標誌結束,防止無限迴圈

char stc[1010],c;

char an[1010];

int i,kz;

int check(char a)

return sum;

}int jisuan(int s)

return t;

}void suan()

if(stc[c] != '(')

stn[n-1] = sum;

// printf("sum %d\n",sum);

}void sw(int len)

stn[n]=sum;n++;

// printf("sum %d\n",sum);

sum = 0;

} else if( an[i] == 's')

else

else if(k==0) //出棧

else if(k == 2) //# # 結束 i++ 否則,會無限迴圈

} }}

int main()

{ int m,j,len;

scanf("%d",&m);

for(j = 0;j

nyoj 1272 表示式求值

描述 假設表示式定義為 1.乙個十進位制的正整數 x 是乙個表示式。2.如果 x 和 y 是 表示式,則 x y,x y 也是表示式 優先順序高於 3.如果 x 和 y 是 表示式,則 函式 smax x,y 也是表示式,其值為 先分別求出 x y 值的各位數字之和,再從中選最大數。4 如果 x 是...

NYOJ 1272 表示式求值

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 假設表示式定義為 1.乙個十進位制的正整數 x 是乙個表示式。2.如果 x 和 y 是 表示式,則 x y,x y 也是表示式 優先順序高於 3.如果 x 和 y 是 表示式,則 函式 smax x,y 也是表示式,其值為 先分...

NYOJ 1272 表示式求值

思路 套用原來的模板,然後稍加修改。不懂得同學看這裡 表示式求值。我們相當於新增了兩個運算子smax和,我們只需要把他們的優先順序新增到表裡面。然後實現smax函式即可。includeusing namespace std char precede char a,char b smax int x,...