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,...