ความก้าวหน้าทางคณิตศาสตร์
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