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

ค้นหาผลคูณที่ยิ่งใหญ่ที่สุดของตัวเลขสามตัวใน JavaScript


เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของ Numbers เท่านั้น ฟังก์ชันควรเตรียมอาร์เรย์ขององค์ประกอบดังกล่าวสามรายการจากอาร์เรย์ที่ให้ผลผลิตมากที่สุดในบรรดาองค์ประกอบสามองค์ประกอบใดๆ ของอาร์เรย์ ในที่สุดฟังก์ชันควรส่งคืนผลคูณขององค์ประกอบทั้งสามนั้น

ตัวอย่างเช่น −

หากอาร์เรย์อินพุตเป็น −

const arr = [-10, 7, 29, 30, 5, -10, -70];

จากนั้นผลลัพธ์ควรเป็น −

const output = 21000

เพราะเลขสามตัวคือ 30, -10, -70

เราจะเห็นว่าอาร์เรย์สามารถหรืออาจจะมีองค์ประกอบเชิงลบ ดังนั้น ในกรณีเช่นนี้ ผลิตภัณฑ์สูงสุดจะมากกว่าของสองตัวนี้ −

min1 * min2 * max1
max1 * max2 * max3

ดังนั้นเราจะแก้มันแบบนี้

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

const arr = [-10, 7, 29, 30, 5, -10, -70];
const threeProduct = (arr = []) => {
   const sorter = (a, b) => a -b;
   arr.sort(sorter);
   let pro1 = 1, pro2 = 1;
   let len = arr.length - 1;
   for (let i = len; i > len - 3; i--) {
      pro1 = pro1 * arr[i];
   };
   pro2 = arr[0] * arr[1] * arr[len];
   return Math.max(pro1, pro2);
}
console.log(threeProduct(arr));

ผลลัพธ์

ต่อไปนี้เป็นผลลัพธ์บนคอนโซล -

21000