用 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