# 四則運算
## 題目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;
}