用 JavaScript 找到兩個數字,其和等於剩下的和
假設我們的問題如下
我們有一系列從 1 到任意數字(設為 num)的數字。我們必須從該系列中挑選出兩個數字(設為 m 和 n),使得
sum(1 to num) - (m + n) = m * n
最後,我們應該返回一個包含所有此類分組的陣列。
例如,−
如果輸入如下,−
const num = 10;
則輸出應為,−
const output = [ [7, 6] ];
因為 sum(1 to 10) = 55
並且,
55 - (6 + 7) = 6 * 7 = 42
示例
程式碼如下,−
const num = 10;
const pickNumbers = num => {
const sum = (num) * (num + 1) * (.5);
const results = [];
for (let n = 1; n <= num; n++) {
let first = sum - n;
let second = n + 1;
if (first % second === 0) {
let m = first / second;
if (m < num && m !== n && results.every(group => group[0] + group[1]
!== m + n)){
results.push([m, n]);
}
}
}
return results;
}
console.log(pickNumbers(10));輸出
控制檯中的輸出如下,−
[ [7, 6] ]
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP