Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การนับลำดับเลขคณิตที่เป็นไปได้ภายในอาร์เรย์ใน JavaScript

ลำดับเลขคณิต

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