---
# System prepended metadata

title: 四則運算

---

# 四則運算

## 題目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;
}