다음이 문제라고 가정합니다.
1에서 시작하여 임의의 숫자까지의 일련의 숫자가 있습니다. 이를 num이라고 합시다. 다음과 같이 시퀀스에서 두 개의 숫자를 선택해야 합니다(m 및 n이라고 함).
sum(1 to num) - (m + n) = m * n
마지막으로 이러한 모든 숫자의 그룹 배열을 반환해야 합니다.
예를 들어 -
입력이 -
인 경우const num = 10;
그러면 출력은 다음과 같아야 합니다. -
const output = [ [7, 6] ];
sum(1 ~ 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] ]