給定乙個只包含加法和乘法的算術表示式,請你程式設計計算表示式的值。
輸入僅有一行,為需要你計算的表示式,表示式中只包含數字、加法運算子 「 +」 和乘法運算子 「 *」,且沒有括號, 所有參與運算的數字均為 0 到 231-1 之間的整數。 輸入資料保證這一行只有 0~ 9、 +、 * 這 12 種字元。
【輸入樣例 1】 1+1*3+4 【輸入樣例 2】 1+1234567890*1 【輸入樣例 3】 1+1000000003*1
【輸出樣例 1】8【輸出樣例 2】 7891【輸出樣例 3】4
表示式是乙個遞迴的定義:
表示式是由若干項相加或相減得來的,而乙個項是由若干因子相乘或相除的得來的。因子可以是乙個整數構成,也可以由括號括起來的表示式。如表示式:(2+3)*(5+7)+9/3;(2+3)*(5+7)是乙個項,這個項由兩個因子構成,其中因子又為表示式構成。9/3也是由兩個因子構成,不過這兩個因子由整數構成。
這樣就構成了乙個遞迴。
code:
#include#include#includeusing namespace std;
int factor_value();
int term_value();
int expression_value();
int main()
//因子
int factor_value()else
} return result;
}//一項
int term_value()
else more = false;
} return result;
}//表示式
int expression_value()
else more = false;
} return result;
}
表示式求值(遞迴)
題目 輸入為四則運算表示式,僅由整數 組成,沒有空格,要求求其值。假設運算子結果都是整數。結果也是整數。include include include using namespace std 讀入乙個因子並返回其值 intfactor value 讀入乙個項並返回其值 intterm value 讀...
表示式求值 遞迴
下面是 實現 include include include using namespace std intfactor value intterm value intexpression value intmain intexpression value else else return resu...
表示式求值(遞迴演算法)
問題描述 見下圖 程式 題目描述 表示式求值 遞迴演算法 表示式 1 可以是乙個項 2 也可以由多個項通過加減構成 項 1 項本身可以是乙個因子 2 項也可以由若干個因子通過乘除組成 因子 1 因子本身可以是乙個數字 2 因子也可以由表示式加上括號組成 include include include...