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

การนับจำนวนด้านสามเหลี่ยมในอาร์เรย์ใน JavaScript


ปัญหา

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของตัวเลข arr เป็นอาร์กิวเมนต์แรกและอาร์กิวเมนต์เดียว

หน้าที่ของฟังก์ชันของเราคือนับจำนวนแฝดสามที่เลือกจากอาร์เรย์ที่สามารถสร้างสามเหลี่ยมได้หากเรานำมันเป็นความยาวด้านของสามเหลี่ยม

ตัวอย่างเช่น หากอินพุตของฟังก์ชันคือ −

const arr = [2, 2, 3, 4];

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

const output = 3;

คำอธิบายผลลัพธ์

ชุดค่าผสมที่ถูกต้องคือ:

2,3,4 (using the first 2)
2,3,4 (using the second 2)
2,2,3

ตัวอย่าง

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

const arr = [2, 2, 3, 4];
const countTriangle = (arr = []) => {
   arr.sort((a, b) => a - b)
   let k = 2
   let count = 0
   for (let i = 0; i < arr.length - 2; i++) {
      for (let j = i + 1; j < arr.length - 1; j++) {
         k = j + 1
         while (arr[k] < arr[i] + arr[j]) {
            k += 1
         }
         count += k - j - 1
      }
   }
   return count
};
console.log(countTriangle(arr));

ผลลัพธ์

ต่อไปนี้เป็นเอาต์พุตคอนโซล -

3