ลำดับเลขคณิต
ลำดับเลขคณิต (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] และ [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