Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 나머지 합계와 동일한 두 숫자 찾기

<시간/>

다음이 문제라고 가정합니다.

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]
]