逆波蘭表示式的遞迴計算

2022-07-03 15:06:09 字數 567 閱讀 8588

題目:用遞迴求解逆波蘭表示式的結果(數字符號之間都用空格隔開)

逆波蘭表示式:

比如說:(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

難點:不能考慮一次輸完之後再考慮,要便輸入邊計算

#includeusing

namespace

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。本題求解逆波蘭表示式的值,其中運算子包括 四個。輸入資料 輸入為一行,其中運算子和運算...