題目:用遞迴求解逆波蘭表示式的結果(數字符號之間都用空格隔開)
逆波蘭表示式:
比如說:(2+3)*4 -> * + 2 3 4
比如說 * + 11 12 + 24 35 -> (24+ 35)*(11 + 12) = 1357
前提知識:
atof函式能把char型轉換成浮點數
atof():double atof(const char *str )
思路:向字串陣列輸入,分兩種情況,1,是符號,2,是數字
(向字串陣列輸入時如果遇到空格會停止)
所以如果時第一種情況char 陣列只會有c[0]這個位置
而輸入的浮點數則會佔據幾個位置
然後開始遞迴
如果是第一種情況,符號,則引出下一次遞迴
如果是第二種情況,數字,則直接return
難點:不能考慮一次輸完之後再考慮,要便輸入邊計算
#includeusingnamespace
std;
intbolan()
}int
main()
遞迴 逆波蘭表示式
中置表示式 1 2 3 前置 1 2 3 後置 1 2 3 這道題說逆波蘭表示式是前置就前置吧,題意就是輸入一行,其中運算子和運算數直接都用空格分開,輸出乙個表示式的值。思路就是用遞迴的思想,首先需要寫出逆波蘭表示式的定義 1 乙個數是乙個逆波蘭表示式,值為該數。2 運算子 逆波蘭表示式 逆波蘭表示...
(遞迴)逆波蘭表示式
例題 逆波蘭表示式 逆波蘭表示式是一種把運算子前置的算術表示式,例如普通的 表示式2 3的逆波蘭表示法為 2 3。逆波蘭表示式的優點是運算 符之間不必有優先順序關係,也不必用括號改變運算次序,例如 2 3 4的逆波蘭表示法為 2 3 4。本題求解逆波蘭表示式的值,其中運算子包括 四個。輸入輸入為一行...
遞迴 之 逆波蘭表示式
逆波蘭表示式是一種把運算子前置的算術表示式,例如普通的表示式2 3的逆波蘭表示法為 2 3。逆波蘭表示式的優點是運算子之間不必有優先順序關係,也不必用括號改變運算次序,例如 2 3 4的逆波蘭表示法為 2 3 4。本題求解逆波蘭表示式的值,其中運算子包括 四個。輸入資料 輸入為一行,其中運算子和運算...