Computer >> Máy Tính >  >> Lập trình >> Javascript

Đếm các AP có thể có trong một mảng trong JavaScript

Tiến trình số học

Tiến trình số học (AP) là một chuỗi số sao cho hiệu số của bất kỳ số liên tiếp nào là một giá trị không đổi (hay còn gọi là hiệu số chung).

Ví dụ:1, 2, 3, 4, 5, 6,… là một AP, có sự khác biệt chung bằng 1 (2 -1).

Vấn đề

Chúng tôi được yêu cầu viết một hàm JavaScript nhận một mảng các số nguyên, arr, làm đối số đầu tiên và duy nhất.

Nhiệm vụ của hàm của chúng ta là trả về số cấp số cộng có kích thước là 3 có thể phân tích được từ danh sách đó. Trong mỗi tiến trình, sự khác biệt giữa các phần tử phải là cùng tên. Chúng tôi đảm bảo rằng mảng đầu vào sẽ được sắp xếp theo thứ tự tăng dần. Ví dụ:nếu đầu vào cho hàm là

Ví dụ:nếu đầu vào của hàm là -

Đầu vào

const arr = [1, 2, 3, 5, 7, 9];

Đầu ra

const output = 5;

Giải thích đầu ra

Bởi vì các AP mong muốn là -

[1, 2, 3], [1, 3, 5], [1, 5, 9], [3, 5, 7] and [5, 7, 9]

Ví dụ

Sau đây là mã -

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));

Đầu ra

5