遞迴:逆波蘭表示式
阿新 • • 發佈:2018-11-28
1.問題
逆波蘭表示式的定義:
- 一個數是一個逆波蘭表示式,值為該數;
- “運算子 逆波蘭表示式 逆波蘭表示式” 是逆波蘭表示式,值為兩個逆波蘭表示式的值運算結果
樣例輸入:
* + 11.0 12.0 + 24.0 35.0
樣例輸出:
1357.000000
提示:
(11.0 + 12.0)* (24.0 + 35.0)
2.程式碼
#include <iostream> #include <cstdio> #include <cstdlib> using namespace std; double exp(){ //讀入一個逆波蘭表示式,並計算其值 char s[20]; cin >> s; switch(s[0]){ case '+' : return exp() + exp(); case '-' : return exp() - exp(); case '*' : return exp() * exp(); case '/' : return exp() / exp(); default : return atof(s); break; } } int main(){ printf("%lf", exp()); return 0; }