九度1019解題報告

2021-06-20 17:02:45 字數 428 閱讀 6006

關於計算器的題目該題要編寫的計算器比一般的計算器簡單,因為不含括號,運算優先順序就兩種,先算乘除法就好,這是受到了fripside同學的啟發,不需要算術符號棧,只需要數字棧,遇加減號就將下乙個數字入棧(遇減號將數字反號入棧),遇乘除號,就將棧頂的數字取出運算後再入棧。當處理完整個計算式時,將棧中的所有數取出相加,既得結果。**如下

#include #include #include using namespace std;

stack num;

int main()

if (b=='/')

}

double ans=0;

while (!num.empty())

printf("%.2lf\n",ans);

}return 0;

}

九度1184解題報告

這是乙個二叉樹的問題,題目如下 事實上考的就是二叉樹的資料結構以及先序和中序遍歷。一般來說,僅僅由先序遍歷序列無法得到中序序列,然而,本題特殊的地方在於先序遍歷序列中給出了遍歷中遇到的空指標,這樣就很容易根據序列構造二叉樹 依次訪問先序序列,遇到 就返回空指標,遇到非 字元就構造乙個對應的節點,然後...

九度1139解題報告

最小子矩陣問題是求最優解的一類題,看到題目就想到兩種做法,乙個是dp,乙個是搜尋遍歷的方法。雖然深搜很多時候並不是用來解決最優解問題的,但是dp的做法,我暫時沒有想到該怎麼做,於是就先用dfs,如下 include using namespace std define inf 999999999 i...

九度1491解題報告

舉個例子來闡明解題的基本思路。例如,n 4321,我們對其各個數字進行分解,4321 4000 300 20 1,然後從低位到高位一次進行分析。個位1,只能含乙個1,而十位20又可分為1 10和11 20,個位數字有兩次迴圈,而每次迴圈會出現乙個1和乙個2,十位10 19又含有十個1,20含有乙個2...