# 四則運算 ###### tags: `簡單` ## 本章節要學什麼? 學習練習使用基礎的四則運算來熟悉加減乘除與重構簡單的計算元件。 ## 題目1:賦值運算子(+=) ``` =JavaScript // input 輸入 add(1); add(2); add(3); // output 輸出 6 7 8 ``` ## 題目2:賦值運算子(-=) ``` =JavaScript // input 輸入 subtract(5); subtract(4); subtract(3); // output 輸出 3 2 1 ``` ## 題目3:二次方 (**) * 輸入一個數字後,該參數會相乘 2 次,例如輸入 `2`,輸出為 `2*2=4` ``` =JavaScript // input 輸入 multiply2Times(5); multiply2Times(6); multiply2Times(7); // output 輸出 25 36 49 ``` ## 題目4:取 3 的餘數(%) ``` =JavaScript // input 輸入 remainder(9); remainder(8); remainder(7); // output 輸出 0 2 1 ``` ## 題目5:判斷是否為5的倍數 (% + 結果判斷) ``` =JavaScript // input 輸入 isDivisible(15); isDivisible(12); isDivisible(10); // output 輸出 是倍數 非倍數 是倍數 ``` ## 題目6:計算總共繳多少費(區域變數、全域變數) 請透過 `payMoney` 函式,來累加 `bill` 變數 ```=JavaScript let bill = 0; <!-- 作答開始 --> function payMoney(num){ } <!-- 作答結束 --> // input 輸入 payMoney(100); payMoney(299); payMoney(350); // output 輸出 bill 值為 100 bill 值為 399 bill 值為 749 ``` ## 題目7:前數大於後數則相加,反之則相減 ```=javascript // input 輸入 calculate(5,4); calculate(10,15); calculate(8,2); calculate(6,12); // output 輸出 9 -5 10 -6 ``` ## 題目8:承上題,顯示算式過程 ```=javascript // input 輸入 calculateProcess(5,4); calculateProcess(10,15); calculateProcess(8,2); calculateProcess(6,12); // output 輸出 "5+4=9" "10-15=-5" "8+2=10" "6-12=-6" ``` ## 題目9:商業邏輯題:商品折扣 三角麵包店慶開張,凡消費皆有9折折扣: * 一個 `discount`函式,來計算 10% 折扣並回傳付款金額為多少。 情境:小華買了一個麵包,原價 100 元,打完折後為 90 元。 ```=javascript <!-- 作答開始 --> function discount(num){ } <!-- 作答結束 --> const total = discount(100); console.log(`您的付款金額為 ${total}元`) ``` ## 題目10:重構題:消除重複,抽離變因 三角麵包店超賺,於是開了第二家分店為五角麵包店,兩店聯合促銷: 1. 兩家店,消費皆有10%折扣 2. 三角麵包店一個麵包 100 元,五角麵包店一個麵包 50 元 `threeAngleCalculate`、`fifthAngleCalculate` 丟入 `num` 麵包數量,就可獲得消費金額 ### 重構思路 1. 兩個函式裡面的折扣%數都是一樣的,可以嘗試抽出來成一個新函式 `discountPercent`,專門來計算兩間店的折扣金額 ```=javascript // 第一個參數為麵包的數量 function threeAngleCalculate(num){ const subTotal = num * 100; const discountPercent = subTotal * 0.1; const total = subTotal - discountPercent; return total; } // function fifthAngleCalculate(num){ const subTotal = num * 50; const discountPercent = subTotal * 0.1; const total = subTotal - discountPercent; return total; } ```