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

JavaScript에서 숫자 배열에 대한 거듭제곱 연산 수행

<시간/>

문제

짝수 길이의 정수 배열(arr)을 취하는 JavaScript 함수를 작성해야 합니다.

인 숫자 num을 가정합니다.
num = (arr[0] * arr[0] + arr[1] * arr[1]) * (arr[2] * arr[2] + arr[3] * arr[3]) * … * (arr[n-2] * arr[n-2] + arr[n-1] * arr[n-1])

여기서 n은 배열의 길이입니다.

우리의 함수는 다음과 같은 두 숫자 [A, B]의 배열을 찾아 반환해야 합니다. -

A2 + B2 = num

예를 들어, 배열이 -

인 경우
[1, 2, 3, 4]

그런 다음 숫자 =( 1 + 4 ) * (9 + 16) =125

그런 다음 출력은 -

여야 합니다.
[2, 11]

2 2 이기 때문에 + 11 2 =125

예시

다음은 코드입니다 -

const arr = [1, 2, 3, 4];
const findMatchingSumArray = (arr = []) => {
   let squaredSum = 1;
   for(let i = 0; i < arr.length - 1; i += 2){
      const curr = arr[i];
      const next = arr[i + 1];
      squaredSum *= (Math.pow(curr, 2) + Math.pow(next, 2));
   };
   for(let k = 0; k * k < squaredSum; k++){
      for(let j = 0; (k * k) + (j * j) <= squaredSum; j++){
         if((k * k) + (j * j) === squaredSum){
            return [k, j];
         };
      };
   };
   return [];
};
console.log(findMatchingSumArray(arr));

출력

다음은 콘솔 출력입니다 -

[2, 11]