在 JavaScript 中計算陣列中可能存在的 AP


算術級數

算術級數 (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

更新於: 22-APR-2021

101 瀏覽

開啟你事業

透過完成該課程來獲得認證

立即開始
廣告
© . All rights reserved.