# 四則運算 ## 題目1:相加產生器 (+) ``` =JavaScript // input 輸入 add(5,10); add(9,8); add(30,2); // output 輸出 15 17 32 ``` ## 題目2:相減產生器 (-) ``` =JavaScript // input 輸入 subtract(13,5); subtract(21,11); subtract(9,33); // output 輸出 8 10 -24 ``` ## 題目3:相乘三次 (*) * 輸入一個數字後,該參數會相乘 3 次,例如輸入 `2`,輸出為 `2*2*2=8` ``` =JavaScript // input 輸入 multiply3Times(7); multiply3Times(5); multiply3Times(11); // output 輸出 343 125 1331 ``` ## 題目4:取 2 的餘數(%) ``` =JavaScript // input 輸入 remainder(7); remainder(11); remainder(16); // output 輸出 1 1 0 ``` ## 題目5:取 2 的餘數 + 判斷是否可整除 (% + 結果判斷) ``` =JavaScript // input 輸入 isDivisible(5); isDivisible(7); isDivisible(22); // output 輸出 未整除 未整除 已整除 ``` ## 題目6:我要存錢(區域變數、全域變數) 請透過 `addBankMoney` 函式,來累加 `bankMoney` 變數 ```=JavaScript let bankMoney = 0; <!-- 作答開始 --> function addBankMoney(num){ } <!-- 作答結束 --> // input 輸入 addBankMoney(2000); addBankMoney(350); addBankMoney(5600); // output 輸出 bankMoney 值為 2000 bankMoney 值為 2350 bankMoney 值為 7950 ``` ## 題目7:簡單計算機 ```=javascript // input 輸入 calculate(10,7,'+'); calculate(56,11,'-'); calculate(12,8,'*'); calculate(100,4,'/'); // output 輸出 17 45 96 25 ``` ## 題目8:簡單計算機 + 顯示算式過程 ```=javascript // input 輸入 calculateProcess(10,7,'+'); calculateProcess(56,11,'-'); calculateProcess((12,8,'*'); calculateProcess(100,4,'/'); // output 輸出 "10+7=17" "56-11=45" "12*8=96" "100/4=25" ``` ## 題目9:商業邏輯題:增加服務費 六角服飾店即將開張,但發現收銀機漏寫服務費邏輯,還請協助撰寫: * 一個 `serviceCharge`函式,來計算 5% 服務費並回傳總計費用為多少。 情境:小美買了一件西裝外套,小計 590 元,加上服務費為 620 元。 ```=javascript <!-- 作答開始 --> function serviceCharge(num){ } <!-- 作答結束 --> const total = serviceCharge(590); console.log(`您總計費用為 ${total}`) ``` ## 題目10:重構題:消除重複,抽離變因 六角服飾店超賺,於是開了一間飾品店為八角飾品店,為了慶祝開幕優惠,兩間店全品項都打八折 1. 六角商品價格 590元,八角商品價格100元 `sixAngleCalculate`、`eightAngleCalculate` 丟入 `num` 商品數量,就可獲得總費用 ### 重構思路 1. 兩家店同時擁有八折優惠,可以嘗試抽出來成一個新函式 `discountCharge`,專門來計算兩間店的八折優惠 ```=javascript // 第一個參數為商品的數量 function sixAngleCalculate(num){ const subTotal = num * 590; const discountCharge = 0.8; const total = subTotal * discountCharge; return total; } // function eightAngleCalculate(num){ const subTotal = num * 100; const discountCharge = 0.8; const total = subTotal * discountCharge; return total; }