Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

รับ 2 ตัวเลข m,n คืน 2 ตัวเลขที่ผลรวมเป็น n และผลคูณเป็น m ใน JavaScript

โจทย์

หา 2 ตัวเลขที่ผลรวม = n และผลคูณ = m ถ้าไม่มีคืน false

ตัวอย่างโค้ด

const perfectNumbers = (sum, prod) => { 
  for(let i = 0; i < (sum / 2); i++){ 
    if(i * (sum-i) !== prod){ 
      continue; 
    }; 
    return [i, (sum-i)]; 
  }; 
  return false; 
}; 
// 12 12 ไม่ใช่ distinct numbers 
console.log(perfectNumbers(24, 144)); 
console.log(perfectNumbers(14, 45)); 
console.log(perfectNumbers(21, 98));

ผลลัพธ์

false 
[ 5, 9 ] 
[ 7, 14 ]

คำอธิบาย

วนลูป i จาก 0 ถึง sum/2 ตรวจสอบ i * (sum-i) == prod
24,144: i=12 → 12*12=144 แต่ 12,12 ไม่ distinct → false
14,45: i=5 → 5*9=45 ✓ → [5,9]
21,98: i=7 → 7*14=98 ✓ → [7,14]