用 JavaScript 在等差數列中查詢缺失數


等差數列

等差數列 (AP) 或等差數列是一組數字,其中連續元素之間的差值保持不變。

例如,數列 5、7、9、11、13...

假設我們有一個按順序表示等差數列元素的陣列。但是不知何故,數列中的一個數字丟失了。我們需要編寫一個 JavaScript 函式,該函式將第一個且唯一的引數作為這樣的陣列之一。

然後,我們的函式應在一次迭代中找到並返回數列中缺少的數字。

例如 −

如果輸入陣列是 −

const arr = [7, 13, 19, 31, 37, 43];

則輸出應為 −

const output = 25;

因為 25 存在於 19 和 31 之間

示例

示例的程式碼如下 −

 現場演示

const arr = [7, 13, 19, 31, 37, 43];
const findMissingNumber = (arr = []) => {
   let {length} = arr;
   let diff1 = arr[1] - arr[0];
   let diff2 = arr[length - 1] - arr[length - 2];
   if (diff1 !== diff2) {
      if (diff1 == 2 * diff2){
         return arr[0] + diff2;
      }else{
         return arr[length - 1] - diff1;
      };
   };
   for (let i = 1; i < length - 2; i++){
      if (arr[i + 1] - arr[i] != diff1){
         return arr[i] + diff1;
      };
   };
   return arr[0];
};
console.log(findMissingNumber(arr));

輸出

控制檯中的輸出將為 −

25

更新於: 2021-02-27

320 Views

開啟你的職業生涯

完成課程即可獲得認證

開始動手
廣告