Computer >> Máy Tính >  >> Lập trình >> Javascript

Thực hiện các phép toán lũy thừa trên một mảng số trong JavaScript

Vấn đề

Chúng tôi bắt buộc phải viết một hàm JavaScript nhận vào một mảng các số nguyên, arr, có độ dài chẵn.

Giả sử một số num trong đó -

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

Trong đó n là độ dài của mảng.

Hàm của chúng ta sẽ tìm và trả về một mảng gồm hai số [A, B] sao cho -

A2 + B2 = num

Ví dụ:nếu mảng là -

[1, 2, 3, 4]

Khi đó num =(1 + 4) * (9 + 16) =125

Sau đó, đầu ra phải là -

[2, 11]

Vì 2 2 + 11 2 =125

Ví dụ

Sau đây là mã -

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));

Đầu ra

Sau đây là đầu ra của bảng điều khiển -

[2, 11]