申論 2如下程式,使用堆疊(Stack)的概念來存放數字基底轉換的結果,轉換完成後,再將Stack 內的資料一一取出,作結果的顯示;請依程式中標號的說明,於程式中填入適當的程式碼,以完成十進位數字轉換為二、四、八、十六等四種進位制的數值。(每小題3 分,共15 分)㈠創造ArrayList 物件㈡設定迴圈起始狀態㈢改變控制變數㈣加入餘數 0~F 的字元到 ArrayList㈤從最後加入的資料開始,一一取出存放在ArrayList 中的資料(ArrayList 資料的長度在Java 中可使用size()方法取得)void base10toBaseNum(int sourceNum, int targetBase){ String ss = "";if (sourceNum < 0){ ss = ("轉換基底的數字必須大於等於零"); }else if ((targetBase == 2) || (targetBase == 4) ||(targetBase == 8) || (targetBase == 16)){ char [] base16 = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};ArrayList result = /* ㈠ 創造 ArrayList 物件 */;for (int rr = /* ㈡ 設定迴圈起始狀態 */; rr > 0;rr = /* ㈢ 改變控制變數 */){ result.add(/* ㈣ 加入餘數 0~F 的字元到 ArrayList */); }ss = ("轉換" + sourceNum + "到基底" + targetBase + ": ");for(int i = /* ㈤ 由後往前取出 ArrayList 內容資料 */; i--){ ss += ("" + result.get(i));if ((i%4) == 0) { ss += (" "); }}ss += "\n";}else { ss = ("轉換至的基底只能是2, 4, 8, 16"); }/* print out ss */} // End of base10toBaseNum(請接第二頁)104年公務人員普通考試試題 代號:44450第二頁類 科: 資訊處理科 目: 程式設計概要