ความก้าวหน้าทางคณิตศาสตร์
Arithmetic Progression (AP) คือลำดับของตัวเลขที่ผลต่างของตัวเลขสองตัวติดต่อกันเป็นค่าคงที่ (หรือที่รู้จักว่าผลต่างร่วม)
ตัวอย่างเช่น 1, 2, 3, 4, 5, 6,… คือ AP ซึ่งมีความแตกต่างทั่วไปเท่ากับ 1 (2 -1)
ปัญหา
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของจำนวนเต็ม arr เป็นอาร์กิวเมนต์แรกและอาร์กิวเมนต์เดียว
งานของฟังก์ชันของเราคือส่งคืนจำนวนความก้าวหน้าทางคณิตศาสตร์ของขนาด 3 ที่เป็นไปได้จากรายการนั้น ในแต่ละขั้นตอน ความแตกต่างระหว่างองค์ประกอบจะต้องเหมือนกัน เรารับประกันว่าอาร์เรย์อินพุตจะถูกจัดเรียงตามลำดับที่เพิ่มขึ้น ตัวอย่างเช่น ถ้าอินพุตของฟังก์ชันคือ
ตัวอย่างเช่น หากอินพุตของฟังก์ชันคือ −
ป้อนข้อมูล
const arr = [1, 2, 3, 5, 7, 9];
ผลผลิต
const output = 5;
คำอธิบายผลลัพธ์
เนื่องจาก AP ที่ต้องการคือ −
[1, 2, 3], [1, 3, 5], [1, 5, 9], [3, 5, 7] and [5, 7, 9]
ตัวอย่าง
ต่อไปนี้เป็นรหัส -
const arr = [1, 2, 3, 5, 7, 9];
const countAP = (arr = []) => {
let i, j, k;
let { length: len } = arr;
let count = 0;
for (i = 0; i < len - 2; i++){
for (k = i + 2; k < len; k++){
let temp = arr[i] + arr[k];
let div = temp / 2;
if ((div * 2) == temp){
for (j = i + 1; j < k; j++){
if (arr[j] == div){
count += 1;
}
}
}
}
}
return count;
};
console.log(countAP(arr)); ผลลัพธ์
5