在 JavaScript 中对数字数组执行幂运算

问题

我们需要编写一个 JavaScript 函数,它接受一个偶数长度的整数数组 arr。

假设一个数字 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]

然后 num = ( 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]

以上是 在 JavaScript 中对数字数组执行幂运算 的全部内容, 来源链接: utcz.com/z/350507.html

回到顶部