用 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
广告