# <font class="h2">函式接龍刷題</font>
###### tags: `javascript`
<style>
.h2 {
background: linear-gradient(135deg,#fff,#537479) ;
color: #537479;
display:block;
padding: 6px 5px;
border-radius: 4px;
}
.h3 {
background: linear-gradient(180deg,#fff 50%,#c9d5d4) ;
color: #537479;
display:block;
padding: 6px 5px;
border-bottom: 3px solid #537479;
}
.h4 {
color: #537479;
font-weight:bold;
font-size:1.1em;
}
</style>
<br>
## 題目一.
```javascript
function count(num){
console.log(num**3)
}
count(2)
count(3)
count(5)
// output
// 8
// 27
//125
//input
//接龍出題如下
func(2,4,6);
func(9,2,5);
func(47,2,5);
// output
// 0
// 1
// 4
```
:::spoiler 解答
```javascript
function func(num1,num2,num3){
console.log((num1+num2)%num3)
}
func(2,4,6);//0
func(9,2,5);//1
func(47,2,5);//4
```
:::
<br>
## 題目二.
```javascript
// // input
// fun(2,5,5)
// fun(3,4,5)
// fun(3,-2,2)
// output
// -15
// -5
// 10
```
:::spoiler 解答
```javascript
function fun(num1, num2, num3) {
console.log((num1-num2)*num3);
}
fun(2,5,5)
fun(3,4,5)
fun(3,-2,2)
// output
// -15
// -5
// 10
```
:::
<br>
```javascript
// input
calc(1,2,3)
calc(2,3,4)
calc(3,-1,2)
// output
// -5
// -8
// 11
```
:::spoiler 解答
```javascript
function calc(num1, num2, num3) {
console.log(num1 * num1 - num2 * num3)
}
calc(1, 2, 3)//-5
calc(2, 3, 4)// -8
calc(3, -1, 2)// 11
```
:::
<br>
## 題目四.
```javascript
//input
cal(-2);
cal(100);
cal(101);
//output
//2
//100
//0
```
:::spoiler 解答
```javascript
function cal(num) {
if (num < 0) {
console.log(Math.abs(num))
}
else if (num > 100) {
num = 0
console.log(num)
}
else console.log(num)
}
cal(-2);
cal(100);
cal(101);
```
:::
## 題目五.質數相關
```javascript
// input
fn(3);
fn(5);
fn(8);
// output
[2,3,5]
[2,3,5,7,11]
[2,3,5,7,11,13,17,19]
```
:::spoiler 解答一
```javascript=
function fn(num) {
let arr = [];
let i = 0;
let temp = 0;
while (arr.length < num) {
for (let j = 0; j <= i; j++) {
if (i % j == 0) {
temp++;
}
}
if (temp == 2) {
arr.push(i);
}
i++
temp = 0;
}
console.log(arr)
}
fn(3);
fn(5);
fn(8);
```
:::
:::spoiler 解答二
```javascript
function fn(a) {
if (a < 1 || isNaN(a)) {
console.log("要從1開始");
return;
}
let arr = [];
for (let i = 2; ; i++) {
let flag = true;
if (arr.length === a) {
break;
}
for (let j = 2; j <= Math.sqrt(i); j++) {
if (i % j === 0) {
flag = false;
break;
}
}
if (flag) {
arr.push(i);
}
}
console.log(arr);
}
```
:::
<br>
## 題目六.平面上有座標兩點求中點座標
```javascript
// input
fn([-3, 2], [5, 7]);
fn([5, 0], [-5, 0]);
fn([4, 4], [6, 6]);
// output
[1, 4.5]
[0, 0]
[5, 5]
```
:::spoiler 答案
```javascript
function fn(a,b){
let c = (a[0]+b[0])/2;
let d = (a[1]+b[1])/2;
let e = [c,d]
console.log(e)
}
fn([-3, 2], [5, 7]); //[1, 4.5]
fn([5, 0], [-5, 0]); //[0, 0
```
:::
<br>
## 題目七.梯形公式
```javascript
//input
fn(1, 2, 4);
fn(2, 7, 6);
fn(5, 1, 8);
//output
6
27
24
```
:::spoiler 答案
```javascript
const fn = (top, bottom, height) => console.log(((top + bottom) * height) / 2);
fn(1, 2, 4); // 6
fn(2, 7, 6); // 27
fn(5, 1, 8); // 2
```
:::
<br>
## 題目八.存在於有餘跟沒有餘之間
```javascript
//input
Fn(1, 2, 3)
Fn(6, 5, 4)
Fn(9, 7, 8)
//output
// 1
// 0
// 2
// 提示存在於有餘跟沒有魚之間
```
:::spoiler
```javascript
function Fn(num1,num2,num3){
console.log(num1 % (num2 % num3))
}
```
:::
<br>
## 題目九.
提示:
可不用迴圈,可用陣列取值方式
次方後賦值
```javascript
// input
let ary1 = [3, 6, 9]
let ary2 = [2, 5, 10]
calc(ary1, 2)
calc(ary2, 3)
// output
// [9, 36, 81]
// [8, 125, 1000]
```
:::spoiler 解答一
```javascript
calc = (arr, num) => {
let arr2 = [];
arr.forEach(num1 => {
arr2.push(num1**num)
})
console.log(arr2)
};
```
:::
:::spoiler 解答二
```javascript
function calc(ary, power) {
ary[0] **= power
ary[1] **= power
ary[2] **= power
console.log(ary)
}
```
:::