Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

การดำเนินการด้านพลังงานบนอาร์เรย์ของตัวเลขใน JavaScript


ปัญหา

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้อาร์เรย์ของจำนวนเต็ม arr ของความยาวคู่

สมมติว่าเป็นตัวเลขโดยที่ −

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]