string數學表示式處理

2021-08-15 13:06:31 字數 2134 閱讀 6707

優化一下上次寫的**,加上了注釋,加強了可讀性和封裝性

#include "reverse_polish.h"

void reverse_polish()

while (*it != '+' && *it != '-') }

return it;

}//計算低階運算

string calculate_add(string &st)

} while (*it != '+' && *it != '-')

if (*it == '+')

else

return to_string(total);

}

主函式和標頭檔案
#include "reverse_polish.h"

int main()

#include #include #include #include using namespace std;

typedef std::_string_iterator>> ite;

//獲取數學表示式字串

void reverse_polish();

/*處理括號------------------------------------*/

string main_logic(string &st);

//獲取第乙個反括號前面的第乙個正括號

ite find_start(string &st);

//獲取第乙個反括號

ite find_end(string &st);

//獲取括號前面的字串

string get_start(string &st, ite it);

//獲取括號裡面的字串

string get_mid(ite start, ite end);

//獲取括號後面的字串

string get_end(string &st, ite it);

//檢查括號個數

int check_parentheses(string &st);

/*括號處理完畢--------------------------------*/

//處理不帶括號的表示式分解成第乙個運算元前面和2個運算元和操作符還有第二個運算元後面的一共3個字串

string calculate(string &st);

//獲取第二個運算元後面的符號位置

ite find_calculate_end(string &st);

//獲取第乙個運算元前面的符號位置

ite find_calculate_start(string &st);

//獲取無括號表示式的第乙個運算元前面的字串

string get_calculate_start(string &st,ite it);

//獲取第二個運算元後面的的字串

string get_calculate_end(string &st, ite it);

//獲取2個運算元和操作符的字串

string get_calculate_mid(ite start,ite end);

//計算高階計算*和/

string calculate_high(string &st);

//檢查高階運算子數量

int check_high(string &st);

//計算低階計算+和-

string calculate_low(string &st);

//尋找第二個低階運算運算元後面的位置,可以是字串結尾

ite find_calculate_low_point(string &st);

//計算低階運算子數量,不會把第乙個數的負號當成操作符

int check_low(string &st);

//分解得到2個運算元和乙個操作符的字串

string get_low_first(string &st, ite it);

//第二個運算元後面的字串

string get_low_next(string &st, ite it);

//計算低階運算

string calculate_add(string &st);

數學表示式

只做 1或者2操作,使得給定乙個目標數,乙個初始數,使得初始數到目標數的步驟最短。23 52 1 2 1 113 11 1 1 1 222 1 先判斷目標數字和原始數字的大小,然後在判斷目標數是否為奇數,若是,則 1變成偶數在遞迴,在判斷原始數 2是否大於目標數,若不大於,則做乘2的操作。若小於則不...

JS數學表示式運算

在專案中經常碰到js精度問題,且常用到連續的運算 故寫了個簡單的數學表示式計算,僅支援 計算結果 math.express 3 1 2.3 6 3 5 1 1 1 2 1.9 math.express.add 1.2,3.33 4.53 math.express function 兩個浮點數求和 e...

數學計算表示式解析

最近在寫乙個計算器的專案,其中最麻煩的就是數學表達試的解析,用c語言解決問題,每一步基本都要自己實現,非常鍛鍊邏輯能力。用了將近兩個晚上的時間,終於完成了大部分表示式的解析,寫這篇文章來記錄下遇到的問題。涉及到二維指標。主要思想和這篇部落格中的一樣 首先進行括號代換,就是將括號中的表示式單獨計算出來...