時間限制:
3000 ms | 記憶體限制:65535 kb
難度:3
描述 dr.kong設計的機械人卡多掌握了加減法運算以後,最近又學會了一些簡單的函式求值,比如,它知道函式min(20,23)的值是20 ,add(10,98) 的值是108等等。經過訓練,dr.kong設計的機械人卡多甚至會計算一種巢狀的更複雜的表示式。
假設表示式可以簡單定義為:
1. 乙個正的十進位制數 x 是乙個表示式。
2. 如果 x 和 y 是 表示式,則 函式min(x,y )也是表示式,其值為x,y 中的最小數。
3. 如果 x 和 y 是 表示式,則 函式max(x,y )也是表示式,其值為x,y 中的最大數。
4.如果 x 和 y 是 表示式,則 函式add(x,y )也是表示式,其值為x,y 之和。
例如, 表示式 max(add(1,2),7) 的值為 7。
請你編寫程式,對於給定的一組表示式,幫助 dr.kong 算出正確答案,以便校對卡多計算的正誤。
輸入第一行: n 表示要計算的表示式個數 (1≤ n ≤ 10)
接下來有n行, 每行是乙個字串,表示待求值的表示式
(表示式中不會有多餘的空格,每行不超過300個字元,表示式中出現的十進位制數都不
超過1000。)
輸出輸出有n行,每一行對應乙個表示式的值。
樣例輸入
3add(1,2) max(1,999) add(min(1,1000),add(100,99))
#include #include int add(int a,int b)
int min(int a,int b)
int max(int a,int b)
int main()
else if(a[i]==')'|| a[i]==',' || i+1==len)//i+1=len 指數字原樣//輸出
else if(a[i]!=')')
if(a[i]==')')
else if(b[top1-1]=='x')
else if(b[top1-1]=='n')
}if(i+1==len)
}printf("%d\n",c[top2]);
}return 0;
}
正則表達示收藏
整數或者小數 0 9 0 9 只能輸入數字 0 9 只能輸入n位的數字 d 只能輸入至少n位的數字 d 只能輸入m n位的數字 d 只能輸入零和非零開頭的數字 0 1 9 0 9 只能輸入有兩位小數的正實數 0 9 0 9 只能輸入有1 3位小數的正實數 0 9 0 9 只能輸入非零的正整數 1 9...
常用正則表達示
匹配中文字元的正規表示式 u4e00 u9fa5 評注 匹配中文還真是個頭疼的事,有了這個表示式就好辦了 匹配雙位元組字元 包括漢字在內 x00 xff 評注 可以用來計算字串的長度 乙個雙位元組字元長度計2,ascii字元計1 匹配空白行的正規表示式 n s r 評注 可以用來刪除空白行 匹配ht...
常用正則表達示
1 由數字 26個英文本母或者下劃線組成的字串 0 9a za z 2.非負整數 正整數 0 d 3.正整數 0 9 1 9 0 9 4.非正整數 負整數 0 d 0 5.負整數 0 9 1 9 0 9 6.整數 d 7.非負浮點數 正浮點數 0 d d 8.正浮點數 0 9 0 9 1 9 0 9...